Java学习笔记(十一)

 

1、请描述abstract class 和interface的区别?

(1)实现方式

抽象类是一个类,可以像普通类一样拥有属性和方法,但是它的部分方法没有具体实现,需要由子类来实现。抽象类使用关键字abstract来定义。在Java中,一个类只能继承一个抽象类。

接口没有属性,只有方法和常量,所有的方法都是抽象的,没有具体实现。接口使用关键字interface来定义。在Java中,一个类可以实现多个接口。

(2)实现方式的影响

由于Java不支持多重继承,所以如果一个类继承了一个抽象类,它就不能再继承其他类了。但是,一个类可以实现多个接口,从而达到类似多重继承的效果。

另外,抽象类可以包含具体的方法实现,而接口中只能包含抽象方法和常量。这意味着,如果我们需要在多个类中共用一些方法的实现,可以将这些方法放在抽象类中,而不是接口中。

(3)设计目的

抽象类的设计目的是为了提供一种基础类,它的子类可以继承这些基础方法和属性,并实现自己特定的方法和属性。抽象类常用于定义模板方法,即父类定义好算法框架,而具体的实现由子类来完成。

接口的设计目的是为了定义一组公共的方法和常量,以便实现类可以按照这些方法和常量来进行编写。接口常用于实现多态和解耦合。

 

2、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

是。可以。可以。

 

3、请描述你理解的模板方法设计模式?

当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以

把不确定的部分暴露出去,让子类去实现。

将代码不变部分封装在父类中,保证了代码的一致性和可维护性,同时将可变的部分留给子类来实现,保证了代码的灵活性和可扩展性。

抽象类(Abstract Class):定义算法框架,包含一系列抽象方法和具体方法,其中抽象方法由子类来实现。

具体类(Concrete Class):实现抽象类中的抽象方法,并在具体方法中调用抽象方法,从而完成算法的实现

 

posted @ 2023-05-08 15:48  南极星丶  阅读(29)  评论(0)    收藏  举报