注册 登录
编程论坛 JAVA论坛

向上转型编译出问题,继承应该没问题

gongsan 发布于 2017-11-25 22:56, 1912 次点击
package polymorphism;

import polymorphism.cycle.*;

public class E01_Upcasting {
    public static void ride(Cycle c) {}

    public static void main(String[] args) {
        
        ride(new Cycle()); // No upcasting
        ride(new Unicycle()); // Upcast
        ride(new Bicycle()); // Upcast
        ride(new Tricycle()); // Upcast

            
    }
}



//: polymorphism/cycle/Cycle.java
package polymorphism.cycle;
public class Cycle {
} ///:~
//: polymorphism/cycle/Unicycle.java
package polymorphism.cycle;
public class Unicycle extends Cycle {
} ///:~
//: polymorphism/cycle/Bicycle.java
package polymorphism.cycle;
public class Bicycle extends Cycle {
} ///:~
//: polymorphism/cycle/Tricycle.java
package polymorphism.cycle;
public class Tricycle extends Cycle {
}
4 回复
#2
gongsan2017-11-25 23:01
只有本站会员才能查看附件,请 登录
#3
gongsan2017-11-25 23:03
三个报错说The method ride(Cycle) in the type E01_Upcasting is not applicable for the
 arguments (Tricycle)类似的话
#4
gongsan2017-11-25 23:06
在线等啊,大神们
#5
林月儿2017-11-26 11:24
你这不是上转型,自然是类型不一致。
ride(new Cycle()); // No upcasting
Cycle unicycle = new Unicycle();
ride(unicycle ); // Upcast

...
1