1.普通类
概念:
类是一个模板,通过类可以创建N多个对象,是对“对象”共同特征的抽象
用法:
[修饰符列表] class 类名 {
//类体 = 属性 + 方法
// 属性在代码上以“变量”的形式存在(描述状态)
// 方法描述动作/行为
}
注意:
类名也是一个引用数据类型
一个java文件当中可以有多个类,但是只能有一个public修饰的类
普通类只能实现单继承
2.抽象类
概念:
类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类
用法:
[修饰符列表] abstract class 类名 {
类体
}
注意:
抽象类只能实现单继承
抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
final和abstract不能联合使用,这两个关键字是对立的。
抽象类的子类可以是抽象类。也可以是非抽象类。
抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。super()
抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。
抽象方法怎么定义?
public abstract void doSome();
(*****五颗星):一个非抽象的类,继承抽象类,必须将抽象类中的抽象方法进行覆盖/重写/实现。
3.接口
概念:
接口是完全抽象的一种“引用数据类型”
用法:
[修饰符列表] interface 接口名{
//常量+抽象方法
}
注意:
接口支持多继承。一个接口可以继承多个接口
接口中只有常量+抽象方法。
接口中所有的元素都是public修饰的
接口中抽象方法的public abstract可以省略。
接口中常量的public static final可以省略。
接口中方法不能有方法体。
一个非抽象的类,实现接口的时候,必须将接口中所有方法加以实现。
一个类可以实现多个接口。
(*****五颗星):一个类实现接口,必须将接口中的所有抽象方法进行覆盖/重写/实现。