interface类似于class,只不过interface里的所有方法都是abstract抽象的,当一个非抽象的class实现(implements)一个接口interface时,必须实现接口中所有方法(因为都是abstract抽象的),否则该class必须声明为abstract.
————
sample1:
/*interface usage*/ public class InterfaceSample { public static void main(String[] args) { new Ball().basketball(); new Ball().football(); } } interface Sport{ void basketball(); //default public abstract void football(); } class Ball implements Sport{ @Override public void basketball() { System.out.println("hello, basketball!"); } @Override public void football() { System.out.println("hello, football!"); } }
output:
hello, basketball!
hello, football!
————————-
sample2: 不同类通过接口实现通讯:
public class InterfaceSample2 { public static void main(String[] args) { GoodPeople p = new GoodPeople(); GetInfo info = new GetInfo(); info.setPeople(p); System.out.println(info.getName()+ " is "+info.getDoing()); } } interface People{ String name(); String doing(); } class GoodPeople implements People{ @Override public String name() { return "dylan"; } @Override public String doing() { return "donating"; } } class GetInfo{ People p; void setPeople(People p){ this.p = p; } String getName(){ return p.name(); } String getDoing(){ return p.doing(); } }
output:
dylan is donating
注意点:
1、一个接口可以继承(extends)自另一个接口
2、不允许类的多继承,但允许接口的多继承(同时继承多个接口)
3、类可以实现多个接口
4、类在继承另一个类的同时,可以实现多个接口,先extends后implements
————————-
dylan presents.
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176526.html原文链接:https://javaforall.net
