class test1{
//Body1...
public void fun(){
//Body2...
}
}
class test2 extends test1{
//Body3...
public void fun(){
//Body4...
}
}
class test3{
public static void main(String [] args){
test1 test = new test2();//test实际类为test2而引用类为test1
//test1 test = (test1) new test2();是否跟上一行一样?
t1.fun();//调用实际类test2的fun();
(test1)test.fun();//为什么强制类型转换后还调用的test2的fun();?
}
}
接口和抽象类存在的意义是什么?
为什么JAVA中有这两个东西
就是说不用接口有什么后果
比如T1接口中有f();
class test4 implement T1{
...
...f(...){
...
}
}
我不用T1接口 不行么?
帖子里面的JAVA代码 只能自己空格对齐么?
而C++可以实现多继承
JAVA用接口实现多继承
就象2F说的JAVA本身只支持单继承,用接口实现多继承至于你的程序,new出来的实际对象始终是test2的,你的几种写法实际都是父类引用指向子类对象吧,调用fun()的时候有多态的存在,所以都会调用test2中重写的fun();
抽象类定义的是抽象方法 有什么不同现在我也了解得不是很清楚
// [code=Java] Your code
[/code]
2.接口和抽象类存在的意义是什么?
本论坛有人总结了,见帖子 http://topic.csdn.net/u/20081008/21/dda07aa2-e8a5-417c-88bc-6814b41c5835.html?seed=1986272069
3.就是说不用接口有什么后果?
接口是为了实现多继承的。不用的后果?很严重!
抽象类:是以abstract 定义的,里面至少有一个抽象方法。