继承

通过在类之间使用 extends 关键字,超类的所有属性(也称为父类基类 )都存在于子类中(也称为子类派生类

public class BaseClass {

    public void baseMethod(){
        System.out.println("Doing base class stuff");
    }
}

public class SubClass extends BaseClass {

}

SubClass 的实例继承baseMethod() 的方法:

SubClass s = new SubClass();
s.baseMethod();  //Valid, prints "Doing base class stuff"

可以将附加内容添加到子类中。这样做允许子类中的其他功能,而无需对基类或同一基类的任何其他子类进行任何更改:

public class Subclass2 extends BaseClass {

    public void anotherMethod() {
        System.out.println("Doing subclass2 stuff");
    }
}

Subclass2 s2 = new Subclass2();
s2.baseMethod(); //Still valid , prints "Doing base class stuff"
s2.anotherMethod(); //Also valid, prints "Doing subclass2 stuff" 

字段也是继承的:

public class BaseClassWithField {

    public int x;

}

public class SubClassWithField extends BaseClassWithField {

    public SubClassWithField(int x) {
        this.x = x; //Can access fields
    }
}

private 字段和方法仍然存在于子类中,但是不可访问:

public class BaseClassWithPrivateField {

    private int x = 5;

    public int getX() {
        return x;
    }
}

public class SubClassInheritsPrivateField extends BaseClassWithPrivateField {

    public void printX() {
        System.out.println(x); //Illegal, can't access private field x
        System.out.println(getX()); //Legal, prints 5
    }
}

SubClassInheritsPrivateField s = new SubClassInheritsPrivateField();
int x = s.getX(); //x will have a value of 5.

在 Java 中,每个类最多可以扩展一个其他类。

public class A{}
public class B{}
public class ExtendsTwoClasses extends A, B {} //Illegal

这称为多重继承,虽然它在某些语言中是合法的,但 Java 不允许它与类一起使用。

因此,每个类都有一个不分支的祖先连锁类,导致所有类下降。