打印结果是CCC
首先,这个程序本身是没有问题的,可以运行。
但直接复制粘贴到java文件中是不能直接运行的,问题出现在缩进的时候。重新缩进或重打代码后可以直接运行。
下面谈谈这段代码的运行(用毕老师的话说就是编译看左边,运行看右边)。
Father child = new Child();
这是多态,用父类对象表示子类,就是编译时产生父类对象,但这里的父类对象调用的却是子类的方法(对于父类中的方法,如果子类中没有,就继承,如果子类有,就将其覆盖。重载对此例没有影响)。
child.func1();
运行时调用了子类的方法,这里的子类中有3个方法,
func1(),//继承自父类
func(int i),
func2();//将父类方法重写
func1()中的func2()就是子类中的func2();
子类的func2()重写的父类的func2().
所以输出
CCC
可以参考毕老师视频中面向对象(多态中成员的特点)。 |