问题一:关于继承的问题
class A{
public int i = 10;
}
class B extends A{
public int i = 20;
}
public class Demo{
public static void main(String[] args){
B b = new B();
A a = b;// (A a=b 也就是 A a=new B() 这里是对象的多态特征;) 这一步什么意思,a.i结果为什么是10 呢??这句是不是省略了点东西还是?
System.out.println(b.i); (B b=new B(), b.i调用的是成员变量,编译和运行时都看等号左边,所以,结果是:20)
System.out.println(a.i); ( A a =new B(), a.i调用的也是成员变量,同上。结果是:10)
}
}
问题二 :判断题:
一个类如果实现了某个接口, 那么它必须重载该接口中的所有方法。 这句话为什么是 错误的??
正确的说法是:一个类如果实现了某个接口, 那么它必须重写该接口中的所有方法。只有重写了接口中所有抽象方法的子类,才能够被实例化。
|