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

父类和子类的实例问题
如果一个父类只扩展了一个子类,比如Circle extends Shape,就是说只用了Circle来继承Shape,没有用其他。我知道凡是Circle的实例都是Shape的实例,那在这里的话Shape的实例一定是Circle的实例吗?如果不是,为什么?

------解决方案--------------------
不一定,父类可以自己有自己的实例,比如Shape shape = new Shape();
就算Shape 是抽象类,那也可以通过匿名的内部类来构造Shape 的实例
例如 Shape shape = new Shape(){
里面有Shape没有实现的方法
}
------解决方案--------------------
不一定
子类对象一定是父类的对象,但是父类的对象不一定是子类的对象,所以向上转换不会出错,向下转换有可能出错