Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Наследование является одним из трех основополагающих принципов объектно-ориентированного программирования, поскольку оно допускает создание иерархических классификаций. Благодаря наследованию можно создать общий класс, в котором определяются характерные особенности, присущие множеству связанных элементов. От этого класса могут затем наследовать другие, более конкретные классы, добавляя в него свои индивидуальные особенности.
В языке Java наследуемый класс принято называть суперклассом, а наследующий от него класс — подклассом. Следовательно, подкласс — это специализированный вариант суперкласса. Он наследует все переменные и методы, определенные в суперклассе, дополняя их своими элементами.
Основы наследования
Наследование одних классов от других отражается в Java при объявлении класса. Для этой цели служит ключевое слово extends. Подкласс дополняет суперкласс, расширяя его.
Рассмотрим простой пример программы, демонстрирующий некоторые свойства наследования. В этой программе определен суперкласс TwoDShape, хранящий сведения о ширине и высоте двумерного объекта. Там же определен и его подкласс Triangle. Обратите внимание на то, что в определении подкласса присутствует ключевое слово extends.
// Простая иерархия классов.
// Класс, описывающий двумерные объекты,
class TwoDShape {
double width;
double height;
void showDim() {
System.out.println("Width and height are " +
width + " and " + height);
}
}
// Подкласс класса TwoDShape для представления треугольников.
// Класс Triangle наследует от класса TwoDShape
class Triangle extends TwoDShape {
String style;
double area() {
//Из класса Triangle можно обращаться к членам класса
// TwoDShape таким же обраэом, как и к собственным членам.
return width * height / 2;
}
void showStyle() {
System.out.println("Triangle is " + style);
}
}
class Shapes {
public static void main(String args[]) {
Triangle tl = new Triangle();
Triangle t2 = new Triangle();
// Все члены класса Triangle, даже унаследованные от класса
// TwoDShape, доступны из объектов типа Triangle.
tl.width = 4.0;
tl.height = 4.0;
tl.style = "isosceles";
t2.width = 8.0;
t2.height = 12.0;
t2.style = "right";
System.out.println("Info for tl: ");
tl.showStyle();
tl.showDim();
System, out .println ("Area is " + tl.area());
System.out.println();
System.out.println("Info for t2: ");
t2.showStyle();
t2.showDim();
System.out.println("Area is " + t2.area());
}
}
Ниже приведен результат выполнения данной программы.
Info for tl:
Triangle is isosceles
Width and height are 4.0 and 4.0
244 Java 7: руководство для начинающих, 5-е издание
Area is 8.0
Info for t2:
Triangle is right
Width and height are 8.0 and 12.0
Area is 48.0
Здесь в классе TwoDShape определены атрибуты обобщенной двумерной фигуры, конкретным воплощением которой может быть квадрат, треугольник, прямоугольник и т.д. Класс Triangle представляет конкретную разновидность объекта типа TwoDShape, в данном случае — треугольник. Класс Triangle включает в себя все элементы класса TwoDObject, а в дополнение к ним — поле style и методы area () и showStyle (). Описание треугольника хранится в переменной экземпляра style, метод area () вычисляет и возвращает площадь треугольника, а метод showStyle () отображает геометрическую форму треугольника.