Чтобы наследовать класс , достаточно ввести определение одного класса в другой, используя ключевое слово extends. Для иллюстрации принципа наследования обратимся к краткому примеру.
В приведенной ниже программе создаются суперкласс А и подкласс В. Обратите внимание на использование ключевого слова extends для создания подкласса, производного от класса А.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
// Простой пример наследования // создать суперкласс class A { int i, j; void show_i_and_j() { System.out.println("i и j: " + i + " " + j); } } // создать подкласс путем расширения класса А class B extends A { int k; void show_k() { System.out.println("k: " + k); } void sum() { System.out.println("i+j+k: " + (i + j + k)); } } class SimplteInheritance { public static void main(String args[]) { A superOb = new A(); B subOb = new B(); // суперкласс может использоваться самостоятельно superOb.i = 10; superOb.j = 20; System.out.println("Содержимое объекта superOb: "); superOb.show_i_and_j(); System.out.println(); /* * Подкласс имеет доступ ко всем открытым членам своего суперкласса. * * */ subOb.i = 7; subOb.j = 8; subOb.k = 9; System.out.println("Содержимое объекта subOb: "); subOb.show_i_and_j(); subOb.show_k(); } } |
Эта программа выводит следующий результат:
1 2 3 4 5 6 7 |
Содержимое объекта superOb: i и j: 10 20 Содержимое объекта subOb: i и j: 7 8 k: 9 Сумма i, j и k в объекте subOb: i+j+k: 24 |
Как видите, подкласс В включает в себя все члены своего супер класса А. Именно поэтому объект subOb имеет доступ к переменным i и j и может вызывать метод show_i_and_j(). Кроме того, в методе sum() возможна непосредственная ссылка на переменные i и j , как если бы они были частью класса В.
Несмотря на то что класс А является суперклассом для класса В, он в то же время остается полностью независимым и самостоятельным классом. То, что один класс является суперклассом для другого класса, совсем не исключает возможность его самостоятельного использования. Более того, один подкласс может быть суперклассом другого подкласса.
Ниже приведена общая форма объявления класса, который наследуется от суперкласса:
1 2 3 |
class имя_подкласса extends имя_суперкласса { тело класса } |
Для каждого создаваемого подкласса можно указать только один суперкласс. В Java не поддерживается наследование нескольких суперклассов в одном подклассе.
Как отмечалось ранее, можно создать иерархию наследования, в которой один подкласс становится суперклассом другого подкласса. Но ни один из классов не может стать суперклассом для самого себя.
Программист, не забывай что нужно совмещать спорт с программированием! Прямо сейчас купи себе спортивное питание и начинай по-немного «продвигать» мышцы.