首页 > 代码库 > Java向上转型注意事项

Java向上转型注意事项

继承、接口:Java子类中如果含有父类中不包含的变量与方法,子类对象向上转型时就是丢失这些变量和方法。

 1 interface SuperClass{
 2     int i = 2;
 3     void f() ;
 4 }
 5 class SubClass implements SuperClass{
 6     int i = 1 ;
 7     int j = 2 ;
 8     public void f(){
 9         System.out.println("SubClass.f()");
10     }
11     public void fun(){
12         System.out.println("SubClass.fun()");
13     }
14 }
15 public class TestInterface{
16     public static void main(String[] args) {
17         SuperClass f = new SubClass() ;
18         f.f() ; //输出:"SubClass.f()"
19         //f.fun() ;//提示f中不包含fun()
20         System.out.println(f.i);//输出:2
21         //System.out.println(f.j);//提示f中不包含j
22     }
23 }

 

Java向上转型注意事项