|
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 | Поможем написать вашу работу | Нарушение авторских прав |