接口:可以理解为一种特殊的类,是由公共静态常量和公共抽象方法组成。接口中的方法永远都是public。
public interface A {
public static final String FLAG = "China";//公共静态常量
public abstract String method();//公共抽象方法
}
可以写成如下形式:
public interface A {
String FLAG = "China";
String method();
}
抽象类实现接口:
抽象类实现了接口,抽象类就包含了接口中的抽象方法,抽象类的子类就必须全部重写抽象类的抽象方法,
原本自己的抽象方法和接口的抽象方法,java中一个接口是不允许继承抽象类的,但是允许一个接口继承多个接口。
类是单继承,接口是多继承。
类多实现接口,接口不能继承类。
原因:一个类中,就算是什么也不写,也必须带一个构造方法,而在extends时就会被子类继承,
如果是接口也会继承这个构造方法,很明显构造方法不在以下3项之列。如果类中有
一般的方法和成员变量那就更不行了。
接口中只能出现的3种成员:
公共静态常量 public static final
公共抽象方法 public abstract
静态内部类 static class
public interface A {
public static final String FLAG = "China";//公共静态常量
public abstract String method();//公共抽象方法
}
可以写成如下形式:
public interface A {
String FLAG = "China";
String method();
}
抽象类实现接口:
抽象类实现了接口,抽象类就包含了接口中的抽象方法,抽象类的子类就必须全部重写抽象类的抽象方法,
原本自己的抽象方法和接口的抽象方法,java中一个接口是不允许继承抽象类的,但是允许一个接口继承多个接口。
类是单继承,接口是多继承。
类多实现接口,接口不能继承类。
原因:一个类中,就算是什么也不写,也必须带一个构造方法,而在extends时就会被子类继承,
如果是接口也会继承这个构造方法,很明显构造方法不在以下3项之列。如果类中有
一般的方法和成员变量那就更不行了。
接口中只能出现的3种成员:
公共静态常量 public static final
公共抽象方法 public abstract
静态内部类 static class