js css html

继承基础

2022-05-12  本文已影响0人  大龙10

书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
目录

4.7 继承基础

1、泛型的动物类

  我们来看看另一个例子,这是一个由各种动物组成的世界,包括:狗(dog)、猫(cat)、猴子(monkey)、熊猫(panda)、袋熊(wombat)和水母(sea nettle)。

1)Dog类

从实现Dog类开始,一个Dog对象有年龄变量age(整数),还有eat()、sleep()和bark()函数(分别对应吃饭、睡觉和吠叫)。

class Dog{
    int age;
    Dog(){ 狗和猫都有相同的变量(age)和函数(eat()、sleep()
        age = 0;
    }
    void eat() {
        println("Yum!");
    }
    void sleep() {
        println("Zzzzzz");
    }
    void bark() { 狗会吠叫,所以还有个特殊的bark()函数
        println("WOOF!");
    }
}

2)Cat类

class Cat {
    int age;
    Cat() {
        age = 0;
    }
    void eat() {
        println("Yum!");
    }
    void sleep() {
        println("Zzzzzz");
    }
    void meow() {
      println("MEOW!");
    }
}

2、继承

  我们还要为鱼、马、考拉和狐猴分别写类重写同样的代码,这样的实现过程难免重复而单调。
  我们应该实现一个泛型的动物类(Animal)用于描述各种类型的动物。所有动物都会吃和睡,因此我们可以说:

  继承让上述需求的实现成为可能。
  通过继承,类可以从其他类中继承属性(变量)和功能(方法)。

3、继承的语法

class Animal { Animal类是父类(即超类)
    int age; Dog类和Cat类会继承age变量
    Animal() {
        age = 0;
    }
    void eat() { Dog类和Cat类会继承eat()和sleep()函数
        println("Yum!");
    }
    void sleep() {
        println("Zzzzzz");
    }
 }

class Dog extends Animal { "extends Animal"指Dog类是Animal类的子类
    Dog() {
        super(); super()函数执行父类中的代码
    }
    void bark() {
        println("WOOF!"); 我们在子类中定义bark()函数,因为它不是父类的一部分
    }
}

class Cat extends Animal {
    Cat() {
        super();
    }
    void meow() {
        println("MEOW!");
    }
}

这里有两个新关键字,如下。

4、定制

上一篇下一篇

猜你喜欢

热点阅读