Урок 9

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


  1. Используя наследование, можно создать класс, который определяет характеристики, общие для набора связанных элементов.
  2. Затем этот общий класс может наследоваться другими, более специализированными классами, каждый из которых будет добавлять свои особые характеристики.
  3. В терминологии Jаvа наследуемый класс называется суперклассом, а наследующий класс – подклассом.
  4. Подкласс наследует все члены, определенные в суперклассе, добавляя к ним собственные, особые элементы.
  5. Для каждого создаваемого подкласса можно указать только один суперкласс.
  6. Класс не может стать суперклассом для самого себя.
  7. Набор классов, связанных отношением наследования, называют иерархией.

Общая форма объявления класса, который наследуется от суперкласса:

class имяПодкласса extends имяСуперКласса {
   // тело класса
}

Пример 1. Наследование

 Пример наследования

 

public class Box6 {
    double width;
    double height;
    double depth;

    // constructor used when all dimensions specified
    Box6(double w, double h, double d) {
        width = w;
        height = h;
        depth = d;
    }

    // constructor used when no dimensions specified
    public Box6() {
        width = -1;  // use -1 to indicate
        height = -1; // an uninitialized
        depth = -1;  // box
    }

    // constructor used when cube is created
    Box6(double len) {
        width = height = depth = len;
    }

    // compute and return volume
    double volume() {
        return width * height * depth;
    }
}

public class ColorBox extends Box6 {
    String color; // цвет коробки

    public ColorBox(int width, int height, int depth, String color) {
        this.width = width;
        this.height = height;
        this.depth = depth;
        this.color = color; // цвет
    }

    public ColorBox() {
    }
}

public class HeavyBox extends Box6 {
    int weight; // вес коробки

    public HeavyBox() {
    }

    public HeavyBox(int width, int height, int depth, int weight) {
        this.width = width;
        this.height = height;
        this.depth = depth;
        this.weight = weight;
    }
}


0 comments
Leave your comment: