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

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

1) Java разрешает один родительский класс.

2) У всех классов есть один общий родитель –класс Object.

class Cleanser {

private String s = “Cleanser”;

public void append (String a) {s += a;}

public void dilute () {append (“dilute ()”);}

public void apply () {append (“apply ()”);}

public void scrub () {append (“scrub ()”);}

public String to String {return s;}

public static void main (String [] args) {

Cleanser x = new Cleanser ();

x.dilute ();

x.apply ();

x.scrub (); //сформировали строку

System.out.println (x); // напечатали строку

}

}

Класс-наследник:

public class Detergent extends Cleanser {

public void scrub (){ //изменяем метод -переопределение (overriding)

append (“Detergent.scrub()”);

super.scrub (); / вызываем метод базового класса

}

public void foam (){append (“foam ()”);}

public static void main (String[] args) { // main может иметь любой класс

Detergent x = new Detergent ();

x.dilute(); //метод базового класса

x.apply (); //метод базового класса

x.scrub ();//метод класса-наследника

x.foam (); //сформировали строку

System.out.println (x); // напечатали ее

System.out.println (“Test Base Class”);

Cleanser.main (args);//метод базового класса

}

}

Напечатается:

Cleanser dilute () apply () Detergent.scrub () scrub () foam ()

Test Base Class

Cleanser dilute() apply () scrub()

Пример демонстрирует:

1) служебное слово extends;

2) наследник получил все методы и поля базового класса;

3) метод м.быть переопределен (overriding) с той же сигнатурой;

4) служебное слово super можно использовать для вызова методов базового класса;

5) переопределяться могут только не privat-методы.

Подкласс-специализированная версия базового класса. (is-a). Создаются иерерархии классов. Родитель определяет общие свойства классов, потомки добавляют свои свойства. К приватным методам у наследника доступа нет. Т.е. закрытые методы в потомке недоступны (их нельзя переопределить, так же, как final).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: