1.一个类可以实现多个接口
2.一个类可以从一个类派生(子类)同时实现n个接口
3.接口可以嵌套
4.接口支持常量(final)
5.接口可以继承
package .zzx.base.demo;public interface PC{
// public String start(); //接口不能用private修饰符public void start(); //接口默认是publicpublic void stop(); }
package .zzx.base.demo;
/*** * PC是接口* 接口的子类是SoundCard*/
public class SoundCard implements PC { @Override/*public String start() {return "声卡启动";}*/
/*** 重写start()方法*/public void start() {System.out.println("声卡启动");}
/*** 重写stop()方法*/@Overridepublic void stop() {System.out.println("声卡关闭");}}
package .zzx.base.demo;import java.io.PrintStream;public class NetworkCard implements PC {// private Breakdown p = new Breakdown();@Override/*public String start() {return "网卡启动";}*/
/*** 重写start()方法*/public void start() {System.out.println("网卡启动"); }
/*** 重写stop()方法*/@Overridepublic void stop() {System.out.println("网卡关闭");}/*public void fault(PC obj) {this.p.print(obj.start());}*/}
package .zzx.base.demo;public class Test {public static void main(String[] args) {PC pc = new SoundCard(); //子类赋值给接口,创建实例pc.start(); //实例调用start方法pc.stop();PC pc2 = new NetworkCard();pc2.start();pc2.stop();/*SoundCard s = new SoundCard();NetworkCard n = new NetworkCard();n.fault(s);n.fault(n);*/}}
使用fault的方法时,参数可以是任何PC接口的实现类的对象,不必为不同的类型建立不同的fault
package .zzx.base.demo;public interface PC{public String start(); //接口不能用private修饰符
// public void start(); //接口默认是publicpublic void stop(); }
package .zzx.base.demo;
/*** * PC是接口* 接口的子类是SoundCard*/
public class SoundCard implements PC { @Overridepublic String start() {return "声卡启动";}
/*** 重写start()方法*/
/* public void start() {System.out.println("声卡启动");}*/
/*** 重写stop()方法*/@Overridepublic void stop() {System.out.println("声卡关闭");}}
package .zzx.base.demo;public class NetworkCard implements PC {private Breakdown p = new Breakdown();@Overridepublic String start() {return "网卡启动";}
/*** 重写start()方法*//*public void start() {System.out.println("网卡启动"); }*/
/*** 重写stop()方法*/@Overridepublic void stop() {System.out.println("网卡关闭");}public void fault(PC obj) { //fault方法可以实现可扩展性this.p.print(obj.start());}}
package .zzx.base.demo;public class Breakdown { //实现print方法,可以实现相同性public void print(String start) {System.out.println(start);System.out.println("出现故障");}}
package .zzx.base.demo;public class Test {public static void main(String[] args) {/*PC pc = new SoundCard(); //子类赋值给接口,创建实例pc.start(); //实例调用start方法pc.stop();PC pc2 = new NetworkCard();pc2.start();pc2.stop();*/SoundCard s = new SoundCard(); NetworkCard n = new NetworkCard();n.fault(s); //实例调用fault方法,传给参数调用实例n.fault(n);}}
更多推荐
接口,多态,Java
发布评论