51,412
社区成员
发帖
与我相关
我的任务
分享
interface USB {
public void read();
public void write();
}class Phone implements USB {
public void read() {
System.out.println("Phone --> Read");
}
public void write() {
System.out.println("Phone --> Write");
}
}class Test {
public static void main(String args []) {
Phone phone = new Phone();
//向上转型
USB usb = phone;
usb.read();
usb.write();
}
}
interface WiFi {
public void open();
public void close();
}class Phone implements USB, WiFi {
public void read() {
System.out.println("Phone --> Reading");
}
public void write() {
System.out.println("Phone --> Writing");
}
//实现WiFi中的抽象方法
public void open() {
System.out.println("WiFi --> Open");
}
public void close() {
System.out.println("WiFi --> Close");
}
}class Test {
public static void main(String args []) {
Phone phone = new Phone();
//向上转型时,就有两种选择
USB usb = phone;
usb.read();
usb.write();
WiFi wifi = phone;
wifi.open();
wifi.close();
}
}
interface SbFi extends USB, WiFi {
public void piu();
}interface Printer {
void open();
void print(String s);
void close();
}class HPPrinter implements Printer {
public void open() {
System.out.println("HP: open");
}
public void print(String s) {
System.out.println("HP: print--> " + s);
}
public void close() {
System.out.println("HP: close");
}
}public class CanonPrinter implements Printer {
public void open() {
System.out.println("Canon: open");
}
public void print(String s) {
System.out.println("Canon: print-->" + s);
}
public void close() {
this.clean();
System.out.println("Canon: close");
}
public void clean() {
System.out.println("Canon: clean");
}
}class Test {
public static void main(String args []) {
Printer printer = null;
//为简便,flag模拟用户选择使用哪台打印机
int flag = 1;
if(flag == 0) {
//向上转型
printer = new HPPrinter();
} else if(flag == 1) {
printer = new CanonPrinter();
}
printer.open();
printer.print("向上转型好用吧~");
printer.close();
}
}
class PrinterFactory {
//添加static是为了调用方便
public static Printer getPrinter(int flag) {
Printer printer = null;
if(flag == 0) {
printer = new HPPrinter();
} else if(flag == 1) {
printer = new CanonPrinter();
}
return printer;
}
}class Test {
public static void main(String args []) {
int flag = 1;
Printer printer = PrinterFactory.getPrinter(flag);
printer.open();
printer.print("对象的转型好用吧~");
printer.close();
}
}

