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)接口是用来实现的