有桃花红,李花白,菜花黄。
秦观·《行香子·树绕村庄》
一、抽象方法和抽象类
1.1 抽象方法
抽象方法通过关键字"abstract"定义,抽象方法仅有方法声明但没有方法体。例如下面这个方法
abstract void abstractMethod();
1.2 抽象类
包含抽象方法的类叫做抽象类,如果一个类包含一个或多个抽象方法,则该类必须被限定为抽象的类。(抽象类中可以包含非抽象的方法)
如果一个类继承了抽象类,则必须为抽象类中的所有抽象方法提供方法定义,否则该子类也将成为一个抽象类,且编译器会强制使用"abstract"限定这个子类。
抽象类也是通过关键字"abstract"定义,如:
abstract class AbstractClass{
abstract void abstractMethod();
void normalMethod(){//抽象类中可以包含一般方法
}
}
二、接口
2.1 interface关键字
"abstract"关键字运行人们在类中创建一个仅仅提供接口但没有任何定义的方法,这些方法的具体实现由继承类完成。而拥有抽象方法的类必须被定义为抽象类,抽象类中可以包含抽象方法,而关键字"interface"则更近一步,直接定义了一个只能包含抽象方法的接口。
关键字"interface"定义了一个接口,该接口具有以下特点:
- 仅包含抽象方法,且必须是public的,即使不显示地声明为public的也会默认的隐式声明为public
- 包含成员变量,但成员变量隐式的是static和final的,因此在定义时就应为其赋值(访问权限也是public的)
2.2 多重继承
Java的单继承机制中只允许继承一个类,但允许实现多个接口,只需将要实现的多个接口用逗号隔开放在关键字"implements"之后即可,而且允许在继承类的同时实现接口,但是继承父类必须放在实现接口之前。如下所示:
class Chile extends Father implements InterfaceOne , InterfaceTwo{}
三、代码
public class Test {
public static void main(String[] args) {
Child child = new Child();
System.out.println(child.getA());
}
}
interface AbstractClass {
int a = 0;
abstract public int getA();
}
class Child implements AbstractClass {
public int getA() {//必须实现接口中的抽象方法
return a;
}
}
四、接口作用
挖个坑~~
接触到的项目太少,目前对接口的作用似懂非懂