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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)