当前位置: 代码迷 >> J2SE >> 关于类继承的小疑点
  详细解决方案

关于类继承的小疑点

热度:155   发布时间:2016-04-24 01:31:23.0
关于类继承的小问题
1、子类对象转化为父类对象后,能调用子类中新增的属性及方法吗?

2、子类中覆写了父类的某个方法,那么当子类对象转为父类对象后,调用这个方法时,所调用的是子类中的还是父类中的?

------解决方案--------------------
1.能
2.子类
------解决方案--------------------
关于第一题,看变量的类型,如果是父类的,只有父类的属性方法,子类同样
若果是多态,属性还是父类,方法是子类
------解决方案--------------------
1.不能
2.子类
------解决方案--------------------
探讨

1.不能
2.子类

------解决方案--------------------
1、子类对象转化为父类对象后,能调用子类中新增的属性及方法吗?

不能 ,你用父类对象的引用 ,再用.操作符都看不到子类中新增的属性和方法 ,向上转型,不安全 ;

2、子类中覆写了父类的某个方法,那么当子类对象转为父类对象后,调用这个方法时,所调用的是子类中的还是父类中的?

子类的, 调用方法 ,转型前创建的是哪个类的对象,调用还是哪个对象的方法 ;
------解决方案--------------------
探讨

1.能
2.子类

------解决方案--------------------
探讨

引用:

1.能
2.子类


+1

------解决方案--------------------
1 不能
2 子类
测试代码:
Java code
public class Test {    public static void main(String[] args) {        Son s = new Son();        Parent p = (Parent)s;        p.print();        //p.foo();    }}class Parent{    void print(){        System.out.println("parent print");    }}class Son extends Parent{    void print(){        System.out.println("son print");    }    void foo(){        System.out.println("son foo()");    }}
  相关解决方案