对继承的一点疑问

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:25:58
public class TestExtend1 {
public static void main(String[] args) {
A a = new B();
a.method1();
a.method2();
System.out.println("i = " + a.i);

B b = new B();
b.method1();
b.method2();
b.method3();
System.out.println("i = " + b.i);
}
}

class A {
public int i = 0;
public void method1(){System.out.println("A's method1");}
public void method2(){System.out.println("A's method2");}
}

class B extends A {
public int i = 1;
public void method2(){System.out.println("B's method2");}
public void method3(){System.out.println("B's method3");}
}

-------------------------------------------------------------------
输出结果:
A's method1
B's method2
i = 0

A's method1
B's method2
B's method3
i = 1
---

1.属性不能被重写的,方法才能被重写
2.a始终是A类的引用,只能引用A类的方法,但是如果A类的方法在B类中有重写的花,就转向调用B类的方法.
3.记住static的要点就可以了,网上题目太多,稍稍拿几个加深记忆就行了