Java15-java语法基础(十四)抽象类

时间:2021-01-25 09:47:12

Java15-java语法基础(十四)抽象类

一、抽象类的作用

三个类都有"执行任务"的方法,分别在这三个类中进行定义,因此需要重复编写代码,降低了程序开发效率,且增加了程序出现错误的机会。

利用抽象类解决该问题。

二、抽象类和抽象方法

1、抽象类:抽象类刻画了公共行为的特征,但并没有在抽象类的内部实现这些公共行为,而是通过继承机制由派生类实现具体的公共行为。

2、抽象方法:凡是用abstract修饰的成员方法都是抽象方法,只声明方法而没有方法的具体实现。

3、语法:

[访问控制修饰符] abstract class 类名{

[访问控制修饰符] 返回值类型 方法名([参数]){方法体}   //普通方法

[访问控制修饰符] abstract 返回值类型 方法名([参数]);   //抽象方法

}

强调:

(1)抽象类中可以有抽象方法,也可以有普通方法;

(2)抽象方法只有声明,没有实现;普通方法有具体的实现即方法体。

三、抽象类、抽象方法的限制

1、如果一个非抽象类继承了抽象类,必须覆写并实现父类的所有抽象方法;

2、如果一个抽象类继承了抽象类,可以不覆写父类的抽象方法,只需要将基类的抽象方法再次声明为抽象的即可;

3、抽象类既可以包含抽象方法,也可以包含非抽象方法;

4、如果一个类中有抽象方法,则这个类必须声明为抽象类;

5、不可以用private修饰抽象方法,因为private修饰的方法时不可见的,无法在子类子类中覆写;

6、不可以用final修饰抽象类,因为final修饰的类不能被继承,这样的定义抽象类就没有意义了。

7、抽象类可以有构造方法,但用抽象类不能直接用构造方法进行实例化。

四、小结

1、设计抽象类的作用?

2、抽象类和抽象方法的关系?

3、设计抽象类需要注意的问题?

4、抽象类和接口的区别?

(1)抽象类是用来继承的

(2)接口是用来实现的