package cn.zzx.base.demo;
public interface PC{
// public String start(); //接口不能用private修饰符
public void start(); //接口默认是public
public void stop();
}
package cn.zzx.base.demo;
/**
*
* PC是接口
* 接口的子类是SoundCard
*/
public class SoundCard implements PC {
@Override
/*public String start() {
return "声卡启动";
}*/
/**
* 重写start()方法
*/
public void start() {
System.out.println("声卡启动");
}
/**
* 重写stop()方法
*/
@Override
public void stop() {
System.out.println("声卡关闭");
}
}
package cn.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()方法
*/
@Override
public void stop() {
System.out.println("网卡关闭");
}
/*public void fault(PC obj) {
this.p.print(obj.start());
}*/
}
package cn.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 cn.zzx.base.demo;
public interface PC{
public String start(); //接口不能用private修饰符
// public void start(); //接口默认是public
public void stop();
}
package cn.zzx.base.demo;
/**
*
* PC是接口
* 接口的子类是SoundCard
*/
public class SoundCard implements PC {
@Override
public String start() {
return "声卡启动";
}
/**
* 重写start()方法
*/
/* public void start() {
System.out.println("声卡启动");
}*/
/**
* 重写stop()方法
*/
@Override
public void stop() {
System.out.println("声卡关闭");
}
}
package cn.zzx.base.demo;
public class NetworkCard implements PC {
private Breakdown p = new Breakdown();
@Override
public String start() {
return "网卡启动";
}
/**
* 重写start()方法
*/
/*public void start() {
System.out.println("网卡启动");
}*/
/**
* 重写stop()方法
*/
@Override
public void stop() {
System.out.println("网卡关闭");
}
public void fault(PC obj) { //fault方法可以实现可扩展性
this.p.print(obj.start());
}
}
package cn.zzx.base.demo;
public class Breakdown { //实现print方法,可以实现相同性
public void print(String start) {
System.out.println(start);
System.out.println("出现故障");
}
}
package cn.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);
}
}