首页 新闻 会员 周边

java多态性问题

0
悬赏园豆:5 [已解决问题] 解决于 2017-03-22 19:01
public class   {
 public static void main(String args[]){
      classStart is =new classStart ();
      interfaceStart i = (interfaceStart )is;
      i.start();
 }
}
interface interfaceStart {
     public void start();
    }
class classStart implements interfaceStart{
    public void start(){
        System.out.println("word..start");
    }
}
复制代码

为什么将classStart类强制转换为interfacestart接口后,还可以调用start方法

unbelievableme的主页 unbelievableme | 初学一级 | 园豆:148
提问于:2017-03-17 23:45
< >
分享
最佳答案
0

 1. 这是向上转型,并不是说将classStart转成了接口;是指类型是父类

 2. classStart 实现了interfaceStart 里的start方法,自然可以调用,而且是classStart的方法

 3. 如果classStart 有其他的方法,此时没法调用

收获园豆:5
开锁的凡人 | 菜鸟二级 |园豆:207 | 2017-03-18 14:54
其他回答(3)
0

语法就是语法.你先学精通了再来想为什么

为什么1+1=2这种问题是咱们这种屁民该想的么.那是顶尖数学家想的事情.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-03-18 08:31
0

i不是interfaceStart接口的实例化对象,接口是没有实例化对象的,他只有指向子类的实例。你这什么强制转化根本没什么用。

土生搞IT | 园豆:18 (初学一级) | 2017-03-22 14:42
0

多态:父类引用指向子类对象。 前提:有继承或者实现; 体现:调用子类的方法(所以只有重写了方法多态才有意义)

多态时:除了调用方法时(重写方法)是子类的表现形式,其它一切都是父类的表现形式(包括编译,成员变量等),如果需要用到子类特有方法,只能向下转型或者创建子类对象。想访问父类特有方法(private),只能在父类中访问

刚反面 | 园豆:209 (菜鸟二级) | 2017-03-24 00:20

发现自己忽略了引用和实例对象,你的解释让我很清楚了,谢谢你。

支持(0) 反对(0) unbelievableme | 园豆:148 (初学一级) | 2017-03-24 00:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册