java--接口
来源:互联网 发布:矩阵组织结构的优点是 编辑:程序博客网 时间:2024/05/16 01:50
小计:
没有多态就没有抽象,没有抽象就没有接口,没有接口就没有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("发出红光"); }}
0 0
- Java接口 和 接口
- Java接口继承接口
- Java接口
- Java接口
- Java (接口)
- Java 接口
- java 接口
- java接口
- Java 接口
- Java接口
- Java接口
- java 接口
- java 接口
- JAVA接口
- java接口
- java接口
- JAVA接口
- java 接口
- 给调度器上锁和开锁(Locking and UnLocking the Scheduler)
- Base64编码原理与应用
- 反射学习03
- Leetcode #258 Add Digits
- 九度OJ-1202:排序
- java--接口
- const, let和var的作用域及闭包
- 保存图片到沙盒
- 转换discuz X2.5表引擎为InnoDB
- 带你高效学习MVP+RxJava+Retrofit
- unbuntu 16.04美化
- spoj687 Repeats
- 欢迎使用CSDN-markdown编辑器
- C#中多态、重载、重写的区别