java抽象类的继承和实现——子类实现没有在抽象类里定义的方法

父类和子类的问题困扰了我许久。
相信各位没有学过java课程的孩子也有相同的感受。


下面给你们介绍一下几个原则:

1:父类引用子类原则java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第1张图片

2.子类引用子类原则。
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第2张图片

假如父类是一个抽象类的情况呢?

考虑下面的抽象类edge。
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第3张图片
其中edge没有实现也没有定义ForwordConnetc();方法
假如我们的类有ForwordConnection继承Edge呢?
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第4张图片
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第5张图片

我们设置一个方法:
这里写图片描述

这个方法上面说到过:
其中edge没有实现也没有定义ForwordConnetc();方法
来看看调用情况:
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第6张图片
静态检查报错。
在java中,进行父类重写的静态检查,然后它发现父类没有这个方法,于是报错。
注意:重载是动态检查。运行的时候才去找。

说明:
用父类声明的时候,抽象类也不能越过父类调用子类方法
我们修改一下:
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第7张图片

这样就好了。
所以我们总结一下,无论在抽象类还是一般类中,
上面的原则都成立。

另外,抽象类有下面的几个特殊的地方~~
java抽象类的继承和实现——子类实现没有在抽象类里定义的方法_第8张图片

你可能感兴趣的:(java)