Java子类对象中必有一个父类对象2

来源:互联网 发布:js里获取el表达式 编辑:程序博客网 时间:2024/06/03 14:11

<p>有些人看到前面我的解释后,可能会想到如果我的父类是抽象类呢,不是抽象类不能new对象的吗?如果你想到这个说明你的基础还不错,</p><p>请听我慢慢道来,请看下面一段代码:</p>
package cn.up.demo6;public abstract class Fu {private int age;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public abstract void fu();}



package cn.up.demo6;public class Zi extends Fu {@Overridepublic void fu() {System.out.println("aaaa");}}

package cn.up.demo6;public class Test {/** * @param args */public static void main(String[] args) {Zi z = new Zi();z.setAge(45);System.out.println(z.getAge());}}
程序运行结果:45

如果子类对象z中没有父类对象,父类中的成员变量是哪里来的呢?要知道成员变量是存在对象中的。
通过这个例子同样解释了为什么 子类继承自抽象类  当要new一个子类对象,必须重写父类的全部抽象方法。

通过这个例子我们可以大胆的猜测:如果一个类是抽象类,那当然不能显式new对象了,但是如果一个子类继承自一个抽象类,显式地new一个子类对象,那么那个抽象父类应该是由JVM来new的 


0 0