接口,内部类,抽象类本质上也是类,是抽象的抽象类,这三种类有各自的特点。
1. 抽象类、 设计与实现的分开
- 抽象类:定义了抽象方法的类,不能实例化,只能被子类实现 , 用关键字abstract修饰。
- 抽象方法:只定义了方法体,没有定义内容。
- 作用:为所有子类建立一个模板。
抽象类具有具有以下的语法规则需要遵循:
1、一个类中如果有抽象方法,则这个类必须是抽象类。
2、抽象类中可以没有抽象方法。
3、抽象类是不能存在实例对象的,换句话说就是抽象类就是为了被继承而存在的。
4、一个子类如果继承了抽象类,必须实现抽象类中定义的所有抽象方法。
5、抽象类可以继承抽象类,可以不重写父类的方法。
abstract class Person{
public abstract void study() ; //抽象方法
public void eat(){
System.out.println("吃的技能");
}
}
简单地说:万物可归类,类本身是对于客观世界的抽象,在描述客观世界的过程中 ,需要抽象出高度抽象的类,用来描述同类事物的共性,可以用abstract来修饰,抽象类有抽象方法,也有常规方法,方法是对于事物行为的描述,抽象方法对于同类事物的相同行为的描述,比如说,抽象类动物有抽象方法吃饭和睡觉,具体类猫也有吃饭和睡觉的行为,猫类实现抽象类动物类,继承抽象方法吃饭和睡觉,这样猫也就有了吃饭和睡觉的方法,通过重写类实现猫的吃饭和睡觉的具体行为。
2.接口 规范和具体实现的分离
- 定义: 只包含有抽象方法和常量,通过 interface修饰,接口可以实现多继承。
常量用public static final 修饰,只有方法标识符,没有方法体。 - 作用:用来描述类有哪些行为,对内的一组行为的描述,接口不能实例化。
接口是规范,定义了一组规则,在现实世界中,如果你是,,,,那么你应该,,,,
本质是契约,开发项目往往是面向接口编程。 - 定义一个接口
4.实现接口
- 接口和抽象类的比较