一.接口
概念
接口是Java编程语言中一种援用类型,是办法的汇合,接口通常以interface来申明,接口的外部次要就是封装了办法,蕴含形象办法,默认办法和静态方法,公有办法。
接口的申明
public interface 接口名称 {
// 形象办法
// 默认办法
// 静态方法
// 公有办法
}接口的定义方法与实现
1. 形象办法
【应用abstract,子类必须实现,定义接口可省略public与abstract】
接口: public interface 名{ void eat(); void sleep(); } 实现类: public class dowu implements 名{ @Override public void eat() { System.out.println("吃货色"); } @Override public void sleep() { System.out.println("早晨睡"); } } 测试类: public class Dom01 { public static void main(String[] args) { dowu a = new dowu(); a.eat(); a.sleep(); } }
2. 默认办法
默认:【应用 default ,继承重写,二选一,只能通过实现类的对象来调用,定义接口可省略public】
接口: public interface 名{ default void fly(){ System.out.println("天上飞"); } } 实现: public class dowu implements 名{ @Override public void fly() { System.out.println("无拘无束的飞"); } } 重写默认办法: 接口: public interface 名 { default void fly(){ System.out.println("天上飞"); } } 实现: public class dowu implements 名{ @Override public void fly() { System.out.println("无拘无束的飞"); } } **(测试如上)**
3.静态方法
动态:【应用 static,只能接口名调用,接口名.静态方法,定义接口可省略public】
接口: public interface 名{ static void run(){ System.out.println("跑起来~~~"); } } 实现:不可重写 测试类: public class Dom01{ public static void main(String[] args) { //Animal.run(); // 【谬误】无奈继承办法,也无奈调用 LiveAble.run();
}
}
4. 公有办法和公有静态方法
公有办法:【应用 private ,只能在本地默认办法中调用,不能在静态方法中应用】
公有静态方法:【本地默认办法和静态方法能够调用】
public interface 名{ default void func(){ func1(); func2(); func3(); } 【如果一个接口中有多个默认办法,并且办法中有反复的 内容,那么能够抽取进去,封装到公有办法中,供默认 办法 去调用。】 private void func1(){ System.out.println("跑起来~~~"); } private void func2(){ System.out.println("跑起来~~~"); } private static void func3(){ System.out.println("奥利给~~~"); } }
接口的多实现
一个类是能够实现多个接口的,这叫做接口的多实现。并且,一个类能继承一个父类,同时实现多个接口。extends关键字只须要应用一次,在其后跟着实现接口。 如下:
class 类名 extends 父类名 implements 接口名1,接口名2... {
// 重写接口中形象办法【必须】
// 重写接口中默认办法【不重名时可选】
}1.形象办法
必须重写所有形象办法,有重名,只需重写一次。
接口:interface A { public abstract void showA(); public abstract void show(); } interface B { public abstract void showB(); public abstract void show(); }
实现:
public class C implements A,B{ @Override public void showA() { System.out.println("showA"); } @Override public void showB() { System.out.println("showB"); } @Override public void show() { System.out.println("show"); }}
2.默认办法
如果默认办法有重名的,必须重写。
接口:interface A { public default void methodA(){} public default void method(){}}interface B { public default void methodB(){} public default void method(){}}
实现:
public class C mplements A,B{ @Override public void method() { System.out.println("method"); }}
3.静态方法
是只能通过各自接口名拜访静态方法。
多继承
类不能够多继承,但接口容许多继承,用extends屁股前面跟着继承接口。
格局:
public interface Hockey extends KPL,NBA
舒适提醒
父接口中的默认办法有重名,子接口须要重写一次哦。