JAVA中为什么会有“extends”和“implents”两个关键字?
1个回答
展开全部
从概念上来说,extends表示的是类与类或接口与接口的继承,implements表示的是类对接口的实现。也就是说,一个是扩展,另一个是实现。\x0d\x0a从设计思路来回答,就要讲明白为什么会有类和接口这两个不同的概念。\x0d\x0a事实上,仅仅通过类的单继承就可以解决绝大部分问题,而C++的多重继承可以解决任何面向对象问题。之所以要设计接口这个概念,主要还是为了使面向对象设计中的多态得到优美的解决。\x0d\x0a接口是一个特殊的抽象类。Java的设计者认为,多重继承增加了系统设计和实现时的复杂性,并且容易出错和产生歧义(例如A同时继承了B和C,而A定义了一个方法,在B和C中都存在这个方法的同名方法,此时A重写了B还是C的方法?),因此Java只允许单重继承,这完全是Java的设计者强加的限制。\x0d\x0a为了解决单重继承无法解决的问题(或者说不容易解决的问题),Java设计者设计了接口的概念,实际上,Java设计者鼓励使用接口而不是继承,因为接口的抽象性更加纯粹。\x0d\x0a\x0d\x0a总结:单继承+接口和多继承都是为了解决面向对象问题,只是方式不同。在Java设计者看来,单继承+接口的好处 > 多继承
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询