抽象类

抽象类就是不能使用new方法进行实例化的类(不能被实例化,可以有多个抽象方法),即没有具体实例对象的类,抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象,当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract,在抽象类中的成员方法可以包括一般方法和抽象方法

 

java中抽象类的特点:

 

1. 如果一个类中有抽象方法,那么这个类一定是抽象类

 2. 抽象类中不一定有抽象方法

 3. 抽象类中可以存在抽象方法

 4. 抽象类中可以存在构造方法

 5. 抽象类中可以存在普通属性、方法、静态属性和静态方法

 6. 抽象类中的抽象方法需要有子类实现,如果子类不实现,则子类也需要定义为抽象的

7,抽象方法和抽象类都必须被abstract关键字修饰。

8,抽象类不可以用new创建对象。因为调用抽象方法没意义

9:抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法

接口和抽象的区别

 

1. 接口中所有的方法隐含都是抽象的,而抽象类则可以同时包含抽象和非抽象的方法

2. 类可以实现很多个接口,但是只能继承一个抽象类

3. 类可以不实现抽象类和接口声明的所有方法,在这种情况下,类也必须得声明成是抽象的

4. 抽象类可以在不提供接口方法实现的情况下实现接口

5. java接口中声明的变量默认都是final的,抽象类可以包含非final变量

6. java接口中的成员函数默认都是public的,抽象类中的成员函数可以是private,protected或者是public的

7. 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是如果它包含main方法的话是可以被调用的

8:抽象类中可以有普通方法,接口中不能。

9:抽象类可以有构造,接口不能

10:抽象类中可以有普通字段,而接口中不行

11:抽象类不能实现多继承,接口可以

12:符合isa关系的选用抽象类,符合hasa关系的选用接口比抽象类抽象程度更高

 

 

欢迎大家批评指正,指出问题,谢谢!

posted @ 2021-10-13 23:07  光明^^龙  阅读(231)  评论(0编辑  收藏  举报