java中继承 多态 抽象类 接口之间的关系和作用,我总结了下,帮我看看理解对不?
发布网友
发布时间:2022-04-02 06:41
我来回答
共3个回答
热心网友
时间:2022-04-02 08:11
子类继承父类,是说把不同的子类共有的属性方法,都写到父类里去,这样共有的东西每个子类里就不写了,节省代码了,并且有利于后期的维护,有利于实现多态。
继承和实现抽象类都是多态的不同表现,都属于多态。抽象类是把几个类共有的属性提取出来,供几个类使用。可以更好的实现代码的重用,有利于后期的维护。因为抽象类能实现好几个接口,而继承只能继承一个父类。
接口是抽象类的表现形式,抽象类里面包括接口,或者说抽象类是由接口组成的。追问那可以这么理解嘛,继承来表现多态就是父类不是抽象类。继承而父类是抽象类的,就是用抽象类来表现多态。所以说继承和抽象类都算是表现多态的2种方式?
你这句话:抽象类是把几个类共有的属性提取出来,我有点疑问,难道不是抽象类的父类就不能把几个类的共有属性提取出来吗?
热心网友
时间:2022-04-02 09:29
继承主要是只能把共用的并且对所有子类来说基本上不会有特别处理的部分提到父类中。这叫共性,目的不是为了节省代码。你只需要记住在编程中减少敲键盘次数永远不是编程语言设计的目的(部分网络编程语言会这么做,但它基本上这样的编程语言不适合解决通用性的复杂问题,只适合面向某个特定方向(比如网页)的编程)。
多态也不是说让父类使用孩子的特性而是说允许不同的孩子以相同的方式被处理,就像我们社会中允许个性化一样,前提是只要它们都有适合当前处理的共性的基础上个性化是完全允许的,比如说,同样是为了加密处理这个共性,每个子类可以使用不同的加密算法,这就是个性化,在外部调用时它只要求加密,而加密的提供者允许给出不同的实现,这就叫多态。
热心网友
时间:2022-04-02 11:03
首先概念问题,类和借口的概念是不同的,继承父类的子类,和实现接口的实现类,要说继承接口,是不对的,实现借口的也不能叫子类,而叫实现类。
java中有现成的多态的例子,就是跨数据库。
java中有Connection接口,里面有方法叫close(关闭连接),然而每次连接数据库都要引入对应数据库的jar包,原理是什么呢,因为不同的数据库关闭的方式不同,每个jar包中,都会有对应实现Connection的类实现close方法,关闭连接的操作由下面的实现类自己去操作,如果是oracle数据库,则此时的Connection是orale提供的jar包中的实现Connection的类,如果是Sql server 那此时的Connection是sql server的,这个Connection就是多种状态了,也就是多态。好处嘛,这里就是跨平台喽,也可以隐藏实现类的代码,如果你研究一种数据库,你提供写一个实现Connection的类,那么java就可以连接了。
借口可以说是所有方法均为抽象的抽象类,但又不能叫做类。
问得太多了,有问题追问吧。