Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Super(...)

Super.method(...)

Super.field

 

Сокрытие статических членов:

1.Статические члены не могут быть переопределены, они скрываются

2.Обычно для доступа используется имя класса, поэтому проблем не возникает

3.Если используется ссылка, то учитывается объявленный тип ссылки, а не фактический тип объекта

 

Давешний результат:

public static void main(String[] args) {

ExtendShow ext = new ExtendShow();

SuperShow sup = ext;

ext.show();

sup.show();

System.out.println("ext.str = " + ext.str);

System.out.println("sup.str = " + sup.str);

}

Extend.show: ExtendStr

Extend.show: ExtendStr

ext.str = ExtendStr

sup.str = SuperStr

 

Замечание!!! Важно понимать, что:

1)Переопределение методов – фундаментальный механизм ООП, в частности, обеспечивающий полиморфизм

2)Сокрытие полей – последствие отсутствия ограничений на имена полей

Завершенные методы и классы:

Завершенный метод не допускает переопределения: final public int getValue() {... }

 

Завершенный класс не допускает расширения: final class MyClass {... }

Абстрактные классы и методы:

Абстрактные методы описывают сигнатуру без реализации: abstract public int getValue();

Класс с абстрактными методами обязан быть абстрактным: abstract class MyClass {...}

Расширяющий класс может перекрыть своими абстрактными родительские реализованные методы.

Абстрактный класс не обязан иметь абстрактные методы.

Создавать объекты абстрактных типов нельзя!

 

Контракт класса:

1)Набор методов и полей класса, открытых для доступа извне тем или иным способом, в совокупности с описанием их назначения.

2)Способ выражения обещаний автора относительно того, на что способен и для чего предназначен созданный им продукт.

 

Наследование:

Практическое воплощение наследования

1)Наследование контракта или типа, в результате чего производный класс получает тип базового, поэтому может быть использован полиморфным образом.

 

2)Наследование способов реализации, в результате производный класс приобретает функциональные характеристики базового в виде набора доступных полей и методов

 

Понятие интерфейса:

a)Позволяет описать тип в полностью абстрактной форме.

b)Экземпляры интерфейсов создавать нельзя!!

c)Классы способны реализовывать один или несколько интерфейсов.

d)Реализация классом интерфейса означает согласие класса на внешний контракт, описываемый реализуемым интерфейсом.

 

Наследование в Java:




Дата добавления: 2015-09-11; просмотров: 69 | Поможем написать вашу работу | Нарушение авторских прав

Лекция №1 | Локальные переменные | Легальные значения | Объявление, инициализация, заполнение | Встроенный в язык механизм проверки и обработки | Особый синтаксис описания обработчиков исключений | Лекция №4 | OutputStreamWriter | Лекция №5 | Параметризованные фабричные методы |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав