java tutorial - Наследование и полиморфизм в Java - учебник java - java programming - учиться java - java basics - java for beginners
1- Введение
- Наследство и полиморфизм (Inheritance & polymorphism) - это очень важное понятие в Java. Которые вы должны понять лучше, если вы хотите обучиться в Java.
2- Класс, конструктор, экземпляр (Class, Constructor, instance)
- Вам нужно ясно понять про класс, конструктор (constructor) и объект перед тем как начать обучение наследственного отношения в java. Рассмотрим class Person, описывающий человека с информацией полное имя, год рождения, mесто рождения.
Person.java
PersonDemo.java
Отличие Class, конструктор (constructor) и объект:
- Class Person симулирует класс людей, это что-то абстрактное, но имеющее информацию, в примере выше информация это полное имя, год рождения, mесто рождения.
Конструктор (Constructor) - Так же называют "Метод инициализации"
- Конструктор всегда имеет одинаковое название с классом
- Один класс имеет один или более конструкторов.
- Конструктор имеет или не имеет параметры, конструктор без параметров называется конструктор по умолчанию.
- Конструтор используется для создания объекта класса.
Смотрите иллюстрацию, инициализация объекта из конструктора.
java - джава - учиться java - учебник java -
Инициализация объекта
- примеры java - java-программы
3- Наследование в java
- Нам нужные некоторые классы для участия в примере.
- Animal: Класс симулирующий класс Животных.
- Duck: Класс симулирующий класс утки, подкласс Animal.
- Cat: Класс симулирующий класс кошки, подкласс Animal
- Mouse: Класс симулирующий класс мышеи, подкласс Animal.
java - джава - учиться java - учебник java -
Создание объекта
- примеры java - java-программы
- Здесь у нас есть класс Animal, с методом без содержания.
- public abstract String getAnimalName();
- Это метод является абстрактным методом (abstract), в подклассах вм нужно объявить и применить его содержаине. Этот метод означает возврат названия животного.
- Class Animal имеет 1 абстрактный метод, который нужно объявить как абстрактный (abstract). Абстрактный класс имеет конструктор (constructor), но вы не можете создать из него объект.
- То есть вы хотите создать объект животного, вам нужно создать из определенного вида животного, в данном случе, вы должные создать из конструктора Cat, Mouse или Duck.
Animal.java
Далее рассмотрим class Cat, унаследованный от Animal.
- Cat also has constructor, and also has fields. In the first line of the constructor must call super(..), means that call to constructor of parent class, to assign value for fields of the parent class.
- If you do not call call super(..), java auto insert super() into first line of constructor at compile time.
Cat.java
Что происходит когда вы создаете объект Cat?
java - джава - учиться java - учебник java -
Пример класса
- примеры java - java-программы
Смотрите class Mouse, унаследованный из Animal.
InstanceofDemo.java
- Результаты запуска примера:
java - джава - учиться java - учебник java -
Javadoc консоли
- примеры java - java-программы
InheritMethodDemo.java
- Результаты запуска примера:
java - джава - учиться java - учебник java -
наследуют метод demo
- примеры java - java-программы
Casting in Java
4- Полиморфизм в Java
- У вас есть кошка азиатского происхождения (AsianCat), вы можете назвать ее кошкой (Cat) или сказать что это животное (Animal), это аспект в полиморфизме.
- Или другой пример: В вашем резюме написано, что вы Азиат, когда на самом деле вы являетесь Вьетнамцем.
- Пример ниже показывает вам как вести себя между объявлением и реальностью.
- Class AsianCat это подкласс унаследованный от Cat.
- Полиморфизм в Java объясняется в иллюстрации ниже:
java - джава - учиться java - учебник java -
Пример polymorhism
- примеры java - java-программы
- Результаты запуска примера: