问:B是A的子类,那么A a=new B();这样有什么意义,请赐教
答:B是A的子类,用A a=new B(),这样定义一个"a", 只能使用B中继承A中的方法或变量,而在B中新增的方法或者变量,"a"不能引用。(也就是 a只能使用B复写A中的方法或者变量)
希望对你理解更有些帮助~
你错在这句话 "而在B中新增的方法或者变量,"a"不能引用"
"a"引用的就是B中的方法 实验程序如下:
class A{
public void paint()
{
System.out.println("this is A");
}
}
class B extends A{
public void paint()
{
System.out.println("this is B");
}
}
public class Test{
public static void main(String args[])
{
A a=new B();
a.paint();
B b=(B) a;
b.paint();
}
}
输出的是:this is B
this is B
而不是:this is A
this is B
答:B是A的子类,用A a=new B(),这样定义一个"a", 只能使用B中继承A中的方法或变量,而在B中新增的方法或者变量,"a"不能引用。(也就是 a只能使用B复写A中的方法或者变量)
希望对你理解更有些帮助~
你错在这句话 "而在B中新增的方法或者变量,"a"不能引用"
"a"引用的就是B中的方法 实验程序如下:
class A{
public void paint()
{
System.out.println("this is A");
}
}
class B extends A{
public void paint()
{
System.out.println("this is B");
}
}
public class Test{
public static void main(String args[])
{
A a=new B();
a.paint();
B b=(B) a;
b.paint();
}
}
输出的是:this is B
this is B
而不是:this is A
this is B