继承
Part one
继承是使一个类获得另一个类的属性(方法和变量)的过程。通过继承,信息被放置在更易于管理的层次上。
继承另一个属性的类称为子类(也称为派生类)。其属性被继承的类称为父类(基类或超类)。
在 Java 中,通过 extends 关键字可以申明一个类是从另外一个类继承而来的。
下面是一个例子,展示了如何让类 Cat 继承 Animal 类。
class Cat extends Animal {
// 其余代码
}
在这里,Cat 是子类,Animal 是父类。
Part Two
当一个类从另一个类继承时,它继承了所有父类的非私有变量和方法。
下面是一个例子:
class Animal {
protected int legs;
public void eat() {
System.out.println("Animal eats");
}
}
class Cat extends Animal {
Cat() {
legs = 4;
}
}
如你所见,Cat 类继承了 Animal 类中的 legs 变量。
现在,我们可以声明一个 Cat 对象,并调用它的父类的 eat 方法:
class MyJavaClass {
public static void main(String[] args) {
Cat c = new Cat();
c.eat();
}
}
提示:protected 访问修饰符,protected 使成员只对子类可见。
Part Three
构造函数不是成员方法,所以不会被子类继承。
然而,父类的构造函数在子类被实例化时会被调用。
下面是一个例子:
class A {
public A() {
System.out.println("New A");
}
}
class B extends A {
public B() {
System.out.println("New B");
}
}
class Test {
public static void main(String[] args) {
B obj = new B();
}
}
/*输出
"New A"
"New B"
*/
提示:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。例如,super.var 将访问父类的var成员。