首页 > 编程 > Java > 正文

java--接口

2019-11-06 08:47:05
字体:
来源:转载
供稿:网友

小计: 没有多态就没有抽象,没有抽象就没有接口,没有接口就没有java 子类引用赋值给父类引用,可以直接赋值。 父类引用给子类引用,必须强转。 强转,两边都是接口,或者右边是接口,编译器可以通过 接口没有实现对象,接口的实现类才有对象 1、接口: 特殊的抽象类 1)所有的属性都是公开静态的常量 可以省略修饰符 2)所有的方法都是公开抽象的方法 可以省略修饰符 3)没有构造方法 ClassA比IA多一个构造方法。 一个类去实现接口,如果这个类不希望也成为抽象类,就必须实现接口中的所有方法。

package chp8;public class TestInterface{ public static void main(String[] args){ /*IA a=new Impl(); a.ma1(); a.ma2*/ Impl i=new Impl(); IA a=i; IB b=i; IC c=i; ID d=i; ClassE e=i; a.ma1(); a.ma2(); b.mb(); c.mc(); d.mb(); d.mc(); d.md(); e.me(); /*System.out.PRintln(i instanceof IA); System.out.println(i instanceof IB); System.out.println(i instanceof IC); System.out.println(i instanceof ID); System.out.println(i instanceof ClassE);*/ }}abstract class ClassA{ public static final int M=10; public static final double N=2.78; public abstract void ma1(); public abstract void ma2();}interface IA{ public static final int M=10; public static final double N=2.78; public abstract void ma1(); public abstract void ma2();}interface IB{ void mb();}interface IC{ void mc();}interface ID extends IB,IC{ void md();}abstract class ClassE{ public abstract void me();}class Impl extends ClassE implements IA,ID { public void ma1(){ } public void ma2(){ } public void mb(){} public void mc(){} public void md(){} public void me(){} }

implements 实现

接口与接口之间可以继承: 类与类之间是单继承。 一个类在继承另外一个类的同时,还可以实现多个接口

子类引用赋值给父类引用,可以直接赋值。 父类引用给子类引用,必须强转。 强转,两边都是接口,或者右边是接口,编译器可以通过

package chp8;public class TestClassCast{ public static void main(String[] args){ Animal a=new Snoopy(); Dog d=(Dog)a; Person p=(Person)a; }}class Animal{}class Dog extends Animal{}//class Person{}interface Person{}class Snoopy extends Dog implements Person{}

作用(面试) 利用接口实现多继承,不会破坏类之间树状关系的简单性。 SUN公司目的接口不主要是多继承 接口所有的方法全是抽象方法 定义了接口,就是定义了标准—-就是弱耦合性 任何弱耦合性,都需要标准的支持

package chp8;public class TestInterface2{ public static void main(String[] args){ Lamp I=new Lamp();//台灯 YellowLight light=new YellowLight();//灯泡 I.setLight(light);//把台灯安装在台灯上 I.powerOn();//打开台灯 RedLight rl=new RedLight();//买个红灯泡 I.setLight(rl);//把台灯安装在台灯上 I.powerOn(); }}interface Light{ void on();}class Lamp { private Light light=null; public void setLight(Light light){ this.light=light; } public void powerOn(){ //light.lightOn(); light.on(); }}class YellowLight implements Light{ public void on(){ System.out.println("发出黄光"); }}class RedLight implements Light{ public void on(){ System.out.println("发出红光"); }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表