日期:2014-05-20  浏览次数:20670 次

JAVA新手的两个问题(强制类型转换、接口/抽象类)
Java code

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代码 只能自己空格对齐么?



回帖是一种美德!传说每天回帖即可获得 10 分可用分!

------解决方案--------------------
1.代码中的问题:多态,这是规律,我不知道怎么解释,自己去网上查查
2.接口和抽象类存在的意义是什么?
本论坛有人总结了,见帖子 http://topic.csdn.net/u/20081008/21/dda07aa2-e8a5-417c-88bc-6814b41c5835.html?seed=1986272069
3.就是说不用接口有什么后果?
接口是为了实现多继承的。不用的后果?很严重!
------解决方案--------------------
只要包含抽象方法的类就叫抽象类.
抽象方法由子类继承父类然后自己重写.
如果单一的实现某个接口,那接口和抽象方法基本一样.
如果要用到多个接口,并且这些接口不全在一个类中,那继承抽象类重写抽象方法就不行了.只能用实现接口了.