Урок 28: Модификаторы доступа public, private. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Урок 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 void method1(){}
private void method2() {}
}
// Вспомогательные классы могут быть без модификатора доступа.
class Xxx{

}
/*
!!! Ошибка!!!
Не может быть два класса с модификатором public.

public class Xxx2{

}
*/

 

 

 

 

Урок 29: Полиморфизм.

В языках программирования и теории типов полиморфизмом называется способность функции обрабатывать данные разных типов.

 

 

public class Test {
public static void main(String[] args) {
   Animal animal = new Animal ();
   Dog dog = new Dog ();

   animal.eat ();
   dog.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(){
   System. out. println ("Dog is barking...");
}
}

 

 

Вывод в консоль:

 

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: ");
   Test (animal);
   System. out. print (" Объект dog: ");
   Test (dog);
   System. out. print (" Объект cat: ");
   Test (cat);

}
public static void Test(Animal animal){
   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(){
   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 с.)