恒大海上夏威夷在哪里:如果b 是a的子类,那a x=new a();和a x=new b();有什么不同?
来源:百度文库 编辑:高考问答 时间:2024/07/05 10:56:58
a x = new b()有什么特殊的作用啊,是不是 a x=new a()和a x=new b();在实际上除了是创建了不同的实例意外,在功能上好像没什么不同吧!谢谢您啊
各位大侠,我报托您了,我跪求还不行吗?您就回一个吧!谢谢啊
谢谢,您基本的说出了,这个问题的答案,但是你有没有遇到这样的问题,就是比如b中有aa变量,a中没有aa变量但是你使用obj3.aa那就会造成无法变异,但是如果你在a中也定义了aa变量,你就可以骗过编译器编译程序,另外假设你在a中也定义一个action2()是{System.out.println(aa);},
b中也有一个是{System.out.println("action in b");System.out.println(aa);},且你让a中的aa=1,b中的aa=2;你有没有考虑过如果我使用obj3.aa你认为是哪个aa,obj3.action2(),你认为是谁的action2?呵呵,可以告诉你的是运行的结果是:
action in b
1
慢慢琢磨吧!
各位大侠,我报托您了,我跪求还不行吗?您就回一个吧!谢谢啊
谢谢,您基本的说出了,这个问题的答案,但是你有没有遇到这样的问题,就是比如b中有aa变量,a中没有aa变量但是你使用obj3.aa那就会造成无法变异,但是如果你在a中也定义了aa变量,你就可以骗过编译器编译程序,另外假设你在a中也定义一个action2()是{System.out.println(aa);},
b中也有一个是{System.out.println("action in b");System.out.println(aa);},且你让a中的aa=1,b中的aa=2;你有没有考虑过如果我使用obj3.aa你认为是哪个aa,obj3.action2(),你认为是谁的action2?呵呵,可以告诉你的是运行的结果是:
action in b
1
慢慢琢磨吧!
假设 a 中有 action() 方法,b 继承了 a,并加了 action2() 方法。那么
a obj = new a();
b obj2 = new b();
a obj3 = new b();
// b obj = new a(); 这是非法的
obj 是对 a 的一个实例的引用,它可以执行 action(),但是不能执行 action2()
obj2 是对 b 的一个实例的引用,它 action() 和 action2() 都可以执行
obj3 是对 b 的一个实例的引用,但是 obj3 本身是 a 类型的引用,因此,虽然 obj3 引用的对象是 b 类型的,但是你无法通过 obj3 来执行 action2()
当然有,举个设计模式中简单工厂模式的例子:
如果 a 是船抽象类,b汽轮类,c油轮类,d游艇是其子类
如果我们在设计的开始并不知道要创建b,c,d类中的哪一个对象,就可以建一个工厂类用 a x = new b();来动态创建了。
北京在崇文门附近有一个金池舞蹈学院,近期就开了爵士舞蹈班。可以去看看。
http://goldendancing.com/index.asp参考资料:http://goldendancing.com/index.asp
第一个是new一个a类的对象
第二个是父类的引用指向子类的对象
请问你学过java语言吗?
去里面查一下
如果b 是a的子类,那a x=new a();和a x=new b();有什么不同?
a是b的五倍,如果a+b=150,则a-b=?
如果关于X的方程2(x-3)+a=b(x-1)是一元一次方程,那么
已知集合A={0,1},B={x|x=A,X∈},C={x|x属于A},则A,B,C之间的相互关系是
三角形ABC的三个内角A,B,C,的对分别是a,b,c,如果a*a=b(b+c)求证A=2B
如果b-a=6,ab=7,则【a×a×b】-【a×b×b】的值是 A.13 B.42 C-13 D.-42
已知f(a+x)=f(a-x),f(b+x)=f(b-x),求证f(x)是周期函数,2(a-b)是它的一个周期.
如果不等式ax>b的解集是x>b/a,那么a的取值范围是A.a≥0 B.a≤0 C.a>0 D.a<0
已知A={||2x-1|≥1,X∈R},B={X|X的平方-(2a+1)X+a(a+1)<0},若B是A的真子集,求实数a范围
设y是x的函数,如果x=a时,y=b,那么b叫做---------------------的---------------- 。