一、接口
1、在抽象类中抽象方法是一种规范或者说是声明,这样这个类的子类就必须重写该抽象方法。这样就保证了调用子类方法的正确性。
2、而在一个类中只有抽象方法,那么就可以改写为接口(interface)。
声明一个抽象类:
abstract class School{
public abstract void room();
public abstract String name();
}
改写为接口:
interface School{
void room();
String name();
}
(1)接口(interface)就是纯抽象接口,因为它连字段都不能有。
(2)接口定义的所有方法默认都是public abstract的,所以可写可不写。
(3)接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明抽象类。
(4)接口的所有方法都是抽象方法,接口不能定义实例字段。
3、当子类要去实现接口中的方法时,需要使用implement关键字。
class Student implement School{
private void room();
public Student(String name){
this.name = name;
}
public void room(){
System.out.println(this.name+"room");
}
public String getName(){
return this.name;
}
}
在Java中,一个类只能继承自另一个类,不能从多个类继承。而一个类可以实现多个接口。
3、抽象类和接口区别
Java的接口特指interface的定义,表示一个接口类型和一组方法签名。而编程接口泛指接口规范。
抽象类和接口区别:
抽象类(abstract class):
继承:只能extends一个类。
字段:可以定义实例字段。
抽象方法:可以定义抽象方法。
非抽象方法:可以定义非抽象方法。
接口(interface):
继承:可以implements多个interface。
字段:不能定义实例字段。
抽象方法:可以定义抽象方法。
非抽象方法:可以定义default方法。