java里面一个类B继承于另一个类A,那么类B继承了类A里面的所有protected和public声明的方法和属性,在子类中可以使用super来进行使用,如果不在子类B里面使用@Override来重写继承于父类的方法的话,那么子类B的实例调用这个方法就是调用和父类里面的方法,如果重写了继承于父类的方法的话,那么子类的实例调用这个方法的时候就是调用子类里面重写方法。
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new B();
b.B_meth();
b.A_meth();
b.x2 = 1;
b.x3 = 2;
B.y2 = 10;
B.y3 = 20;
C c = new C();
c.C_meth();
c.A_meth();
}
}
class A {
public int getX1() {
return x1;
}
public void setX1(int x1) {
this.x1 = x1;
}
private int x1;
protected int x2;
public int x3;
private static int y1;
protected static int y2;
public static int y3;
public void A_meth(){
System.out.println("invoke A_meth");
}
private void A_meth_pri(){
System.out.println("invoke A_meth_pri");
}
protected void A_meth_pro(){
System.out.println("invoke A_meth_pro");
}
}
class B extends A{
public void B_meth(){
System.out.println("invoke B_meth");
}
@Override
public void A_meth_pro(){
System.out.println("invoke A_meth_pro from B");
}
}
class C extends A{
public void C_meth(){
System.out.println("invoke C_meth");
}
@Override
public void A_meth(){
System.out.println("invoke A_meth from C");
}
}
输出结果:
invoke B_meth
invoke A_meth
invoke C_meth
invoke A_meth from C



