Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Урок 28: Модификаторы доступа public, private.
/* public - доступен в рамках / пределах всего Проекта. В Java файле должен быть хотя бы один public класс. private - доступен в рамках / пределах всего Класса в котором protected переменная / метод задекларированны. default - доступен в рамках / пределах всего Пакета. default еще называют модификатором доступа в пакете. Модификатор доступа по умолчанию. default - не пишем перед переменной. Он устанавливается автоматически, если вообще не указать модификатор. protected - доступен в рамках / пределах всего Пакета. А также в классах - наследниках (extends) материнского класса в котором protected переменная / метод задекларированны. */ public class Test { public int id1; // public private int id2; // private int id3; // default protected int id4; // protected public static void main(String[] args) { } } public class Xxx2{ }
Урок 29: Полиморфизм. В языках программирования и теории типов полиморфизмом называется способность функции обрабатывать данные разных типов.
public class Test { public static void main(String[] args) { Animal animal = new Animal (); Dog dog = new Dog (); animal.eat ();
public class Animal { public void eat(){ System. out. println ("Animal is eating..."); } }
public class Dog extends Animal{ }
Вывод в консоль:
Animal is eating... Animal is eating...
public class Test { public static void main(String[] args) { Animal animal = new Dog (); animal.eat (); /* !!! не можем обратиться в через animal к методу bark как - animal.bark(); не все животные лают!!! */ Dog dog = new Dog (); dog.eat (); dog.bark (); }
public class Animal { public void eat(){ System. out. println ("Animal is eating..."); } }
public class Dog extends Animal{ public void bark(){ System. out. println ("Dog is barking..."); } }
Вывод в консоль:
Animal is eating... Animal is eating... Dog is barking...
Позднее связывание. Переопределяем public void eat(){} в классе Dog
Обект такого типа и реализации Animal animal = new Dog ();выведет на экран переопределенный в потомке метод родителя eat таким образом: "Dog is eating...".Это и есть "Позднее связывание". public class Test { public static void main(String[] args) { Animal animal = new Dog (); animal.eat (); } }
public class Animal { public void eat(){ System. out. println ("Animal is eating..."); } }
public class Dog extends Animal{ /* Переопределяем public void eat(){} в классе Dog */ @Override public void eat() { System. out. println ("Dog is eating..."); }
public void bark(){
Вывод в консоль:
Dog is eating...
Возможность передавать в метод разные типы, если у них один и тот же родитель.
public class Test { public static void main(String[] args) { Animal animal = new Animal (); Dog dog = new Dog (); Cat cat = new Cat (); System. out. print (" Объект animal: "); }
public class Animal { public void eat(){ System. out. println ("Animal is eating..."); } }
public class Dog extends Animal{ /* Переопределяем public void eat(){} в классе Dog */ @Override public void eat() { System. out. println ("Dog is eating..."); } public void bark(){ System. out. println ("Dog is barking..."); } }
public class Cat extends Animal{ }
Вывод в консоль:
Объект animal: Animal is eating... Объект dog: Dog is eating... Объект cat: Animal is eating...
|
|||||
Последнее изменение этой страницы: 2020-12-17; просмотров: 71; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.214.32 (0.007 с.) |