这块一直没搞明白,今天研究了一下。
java继承(implements与extends)总结_Happy.哆啦梦的博客-优快云博客
这篇文章写得比较清楚。
简单来说继承就是抽象出一些公共的代码,包括变量和函数,感觉和C语言封装个函数,弄个全局变量也差不多。
然后有个比较有意思的问题,就是Java只支持单继承,不支持多继承,就是不能同时继承多个类,但是可以实现多个接口(implements)。
然后就是为啥Java不支持多继承。
值得思考的问题——C++支持多继承而Java不支持多继承的原因_为什么c++支持双继承_五环旗的博客-优快云博客
简单来说就是因为多继承会有一些问题,典型的就是所谓的菱形问题。
到这里就又有新问题了,那为啥C++能支持多继承。
因为有一个所谓的虚继承机制,就是加个virtual。
这样就只维护一份基类里面的东西,解决了这个问题。