父类和子类的问题困扰了我许久。
相信各位没有学过java课程的孩子也有相同的感受。
下面给你们介绍一下几个原则:
1:父类引用子类原则
2.子类引用子类原则。
假如父类是一个抽象类的情况呢?
考虑下面的抽象类edge。
其中edge没有实现也没有定义ForwordConnetc();方法
假如我们的类有ForwordConnection继承Edge呢?
我们设置一个方法:
这个方法上面说到过:
其中edge没有实现也没有定义ForwordConnetc();方法
来看看调用情况:
静态检查报错。
在java中,进行父类重写的静态检查,然后它发现父类没有这个方法,于是报错。
注意:重载是动态检查。运行的时候才去找。
说明:
用父类声明的时候,抽象类也不能越过父类调用子类方法
我们修改一下:
这样就好了。
所以我们总结一下,无论在抽象类还是一般类中,
上面的原则都成立。
另外,抽象类有下面的几个特殊的地方~~