参考博文:黑马程序员java学习笔记
public class InterfaceDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog d = new Dog();
d.eat();
d.sleep();
System.out.println(Animal.NUM);
}
}
interface Animal{
public static final int NUM = 4;
public abstract void eat();
public abstract void sleep();
}
/*
* 1、接口用interface 关键字声明
* 2、接口的成员变量和方法都有固定的修饰字符 成员变量: public static final 成员方法: public abstract
* 3、由2可以看出,成员方法都是抽象的
* 4、接口不可以实例化,子类重写了所有的抽象方法之后才可以实例化,否则子类也是抽象的
* 5、类与类之间是继承关系,类与接口之间是实现关系 类用:extends 实现用:implements
* 6、接口可以被多实现,而类是不可以被多继承
* 7、一个类在继承了另一个类的同时,还可以实现多个接口。所以接口的出现避免了单继承的局限性。还可以将类进行功能的扩展。
* 8、其实java中是有多继承的,由于接口之间存在着继承关系,而接口之间的继承是可以多继承的。
* 9、类之间不能不继承的原因是防止多个父类之间有同名函数,这样对象调用方法时候不知道调用哪一个,从而降低了风险
* 10、而接口多继承不会出现这样的情况,原因是接口中所有的方法都是静态的,其中本身就没有具体的方法体
*/
/*
* 接口的特点:
* 1、接口的出现降低了耦合性
* 2、接口是对外提供的规则
* 3、接口是功能的扩展
* */
class Dog implements Animal{
public void eat(){
System.out.println("dog eat");
}
public void sleep(){
System.out.println("dog sleep");
}
}