写在前面:本文章来自于在学习过程中的总结,供大家参考。因水平有限,博客中难免会有不足,恳请大佬们不吝赐教!
结果:
eat work 0定义接口时使用关键字interface来声明一个接口
接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中的所有常量的访问权限都是public static,(允许省略public static final修饰符)。
如果一个类声明实现一个接口,但没有重写接口中地所有方法,那么这个类必须时抽象类。
interface A{ void eat(); static int s=0; } interface B extends A { void work(); } abstract public class C implements B{ public void work(){ System.out.println("work"); } public static void main(String[] args) { // C c=new C();//错误,没有重写接口中地所有方法,所以C为抽象类 // c.eat(); // c.work(); System.out.println(A.s); } }结果:
0 定义接口是,如果在interface前面加上public,就成该接口为public接口。public接口可以被任何一个类实现。如果一个接口不加public修饰,那么它只能被同一包中的类实现。如果父类实现了某个接口,那么子类也自然实现了这个接口,子类不必使用implements声明实现这个接口。第一层:名字层,接口的名字必须是斜体 第二层:常量层,列出接口中的常量及类型 第三层:方法层(操作层),列出方法名及返回类型
在C语言中,接口回调表示一个变量的地址在某个时刻存放在一个指针变量中,那么指针变量就可以简介操作该变量存放的数据。
在Java语言中,接口回调是指:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量。
interface A{ void show(); } class B implements A { public void show(){ System.out.println("B"); } } public class C implements A{ public void show(){ System.out.println("C"); } public static void main(String[] args) { A a=new B(); a.show(); a=new C(); a.show(); } }结果:
B C结果:
公交车刹车了 公交车使用了a() 公交车使用了b() 出租车刹车了 出租车使用了a() 出租车使用了b()理解接口:
接口可以抽象出重要的行为标准,该行为标准使用抽象方法来表示。可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法。接口的思想在于它可以要求某些类相同名称的方法,但方法的具体内容(方法体的内容)可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即方法绑定)即接口回调的使用,把实现接口的类的实例的引用赋值给接口变量后,该接口变量就可以回调重写的接口的方法。
interface A{ void show(); } class B implements A { public void show(){ System.out.println("B"); } } public class C implements A{ public void show(){ System.out.println("C"); } public static void main(String[] args) { A a=new B(); a.show(); a=new C(); a.show(); } }结果:
B C如果一个方法的参数是接口类型,我们可以将任何实现接口的类的实例的引用传递给该接口参数。
interface SpeakHello{ void speakHello(); } class Chinese implements SpeakHello{ @Override public void speakHello() { System.out.println("中国人习惯问候语:你好,吃饭了吗?"); } } class English implements SpeakHello{ @Override public void speakHello() { System.out.println("英国人习惯问候语:你好,天气不错 "); } } class kindHello{ public void show(SpeakHello hello){ hello.speakHello(); } } public class C{ public static void main(String[] args) { kindHello kindHello=new kindHello(); kindHello.show(new Chinese()); kindHello.show(new English()); } }结果:
中国人习惯问候语:你好,吃饭了吗? 英国人习惯问候语:你好,天气不错由于水平有限,博客难免会有不足,恳请大佬们不吝赐教!
