抽象类
1、抽象类定义,他是一种本质,比如鸵鸟属于鸟类。鸟类就是一个抽象类。
有抽象方法的类就是抽象类。抽象类也就是比普通类多了抽象方法而已。所以说抽象类可以有属性,也可以由普通方法。
2、抽象类和抽象方法都由abstract修饰。并且抽象方法不能用private修饰,因为private修饰的方法不能被继承,子类就无法实现父类的方法,就无法实例化。
3、子类只有覆盖了父类所有的抽象方法才能创建对象,否则子类也是个抽象类
接口
接口是定义一种行为,比如鸟和飞机都能飞,这个飞就是一种行为,可以把飞定义为一个接口。
1、接口没有构造方法,他的方法必须是抽象方法,也不能有成员变量,只能有全局变量,即public static final 修饰的。抽象方法和变量必须都是public修饰。
2、接口中的方法是隐式的,写的时候可以不写public和abstract。
3、一个类可以实现多个接口。
抽象类与接口的区别
1、抽象类可以含有静态块静态方法,接口不能有。
2、抽象类可以有普通方法和构造器,接口也没有。
3、抽象类要被继承,而且只能继承一个,接口可以被实现,可以实现多个接口。
4、抽象类可以有成员变量,但接口只能有 public static final 修饰的变量。