一.抽象类(abstract class):
1.使用abstract关键字修饰的类是抽象类,抽象类是无法被实例化的,也就是无法被new出抽象类的对象。
例:
2.abstract修饰的方法都是抽象方法,而抽象方法必须放在抽象类中,而抽象类中不一定全部是抽象方法,还可以有具体方法。
注意:抽象类中可以没有抽象方法,但是有抽象方法一定是抽象类。
3.抽象方法仅指定其类型和方法名,而不进行其代码的书写。
例:
4.抽象类可以被继承,但必须实现所有的抽象方法,否则这个子类还是声明为 abstract 。
5.抽象类不能创建对象,创建对象的工作由子类来完成,前提是子类不是抽象类。
注意:
(1).一个类不能同时被abstract和final修饰。因为被final修饰的类不能被继承。
(2).abstract不能和static、final同时修饰一个方法,因为被abstract修饰的方法必须被重写,而如果被static和final修饰则不能再重写。
二.接口(interface):
1.接口的地位等同于class,接口中的方法都是抽象方法。在声明接口中的方法是,可以使用abstract关键字,也可以不使用。通常情况下会省略abstract关键字。
怎么理解接口(图):
2.类实现接口用implements表示(如上图)。
3接口中不能有具体方法,只能是抽象方法。
4.一个类实现了接口,就必须实现接口中的声明的所有方法。如果该类是一个抽象类,就不需要实现接口中的方法。
5.java是单继承,就只能有一个父类,但是一个类可以实现多个接口,接口之间用逗号隔开。
6.接口也可以继承,但是如果一个类实现了此接口就要实现所有此接口及其该接口父类的接口的方法。
7.接口中的方法都是public的,接口中也可以定义成员变量,接口中的成员变量都是public、final、static。