Java抽象学习
-
抽象类
- 定义:在很多情况下,Java中的某个类定义出来就是为了被子类去继承的,而且因为这个类就是要被子类去继承,所以这个类中的属性和方法写的很通用,使得我们这个类在现实生活中没有一个具体存在的实例,也就导致这个类不能手动创建对象,这样的一个类叫做抽象类。
- 抽象类:
- 访问控制修饰符 abstract class ClassName{
//属性
//方法
//构造器—这个构造器我们不能使用,是为了给子类使用,让子类持有父类对象的引用
//代码块
//内部类
//抽象方法
} - 抽象类特点:虽然具备构造器,但是不能被我们手动实例化,构造器的目的是为了让抽象类的子类自动调用构造器去在子类中自动创建一个抽象类的对象 用于调用抽象类的属性和方法的。
-
抽象方法
- 抽象方法必须声明在抽象类中。但是抽象类不一定具备抽象方法
- 抽象方法和抽象类概念很类似,抽象类没有具体的实例,抽象方法没有方法体
- 语法: 访问控制修饰符 abstract 返回值类型 方法名(形参列表);
- 抽象方法存在的目的就是为了让子类去重写,子类不重写是不行的
- 抽象类两种子类:一种是抽象子类 一种是非抽象子类
抽象类中声明的抽象方法必须被非抽象子类重写,抽象子类可以不重写 - 抽象方法 也需要使用访问控制修饰符修饰,private不能用于抽象方法上,一般抽象方法上的访问控制修饰符只能用两个public protected
- 抽象类A 抽象类B 普通类C B extends A C extends B
- 如果A中有一个抽象方法,B可以不重写,C必须重写A的抽象方法
- 如果抽象子类B将A的抽象方法重写了 C可以不重写A的抽象方法了
-
接口