本节课程将学习以下内容:
含义:
Java接口是一系列方法的声明,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
注意:
1.新建一个名为USB.java的源文件:
interface USB{
// 它们是public权限的抽象函数
void read();
void write();
}
2.新建一个名为WIFI.java的源文件:
interface WIFI{
// 它们是public权限的抽象函数
void open();
void close();
}
3.新建一个名为USBPhone.java的源文件:
class USBPhone implements USB,WIFI{
void read(){
System.out.println("USBPhone read!");
}
void write(){
System.out.println("USBPhone write!");
}
void open(){
System.out.println("WIFI open!");
}
void open(){
System.out.println("WIFI close!");
}
}
4.新建一个名为Demo01.java的源文件:
class Demo01{
public static void main(String[] args) {
USBPhone phone = new USBPhone();
// 向上转型
USB usb = phone;
WIFI wifi = phone;
usb.read();
usb.write();
wifi.open();
wifi.close();
}
}
为什么要使用接口
和工厂方法模式
。工厂方法模式
的定义,请阅读百度百科词条【工厂方法模式】。1.新建一个名为Printer.java的源文件:
interface Printer{
void open();
void close();
void print(String s);
}
2.新建一个名为HPPrinter.java的源文件:
class HPPrinter implements Printer{
void open(){
System.out.println("HP open");
}
void close(){
System.out.println("HP close");
}
void print(String s){
System.out.println("HP print-->" + s);
}
}
3.新建一个名为CanonPrinter.java的源文件:
class CanonPrinter implements Printer{
private void clean(){
System.out.println("Canon clean");
}
void open(){
System.out.println("Canon open");
}
void close(){
System.out.println("Canon close");
}
void print(String s){
System.out.println("Canon print-->" + s);
}
}
4.新建一个名为Demo02.java的源文件:
class Demo02{
public static void main(String[] args) {
Printer printer = null;
// 用flag来模拟用户选择打印机。
int flag = 0;
if (flag == 0) {
printer = new HPPrinter();
} else if (flag == 1) {
printer = new CanonPrinter();
}
printer.open();
printer.print("abcdefghijklmn");
printer.close();
}
}
5.新建一个名为PrinterFactory.java的源文件:
class PrinterFactory{
public static Printer getPrinter(int flag){
Printer printer = null;
// 用flag来模拟用户选择打印机。
if (flag == 0) {
printer = new HPPrinter();
} else if (flag == 1) {
printer = new CanonPrinter();
}
return printer;
}
}
6.新建一个名为Demo03.java的源文件:
class Demo03{
public static void main(String[] args) {
int flag = 0;
Printer printer = PrinterFactory.getPrinter(flag);
printer.open();
printer.print("abcdefghijklmn");
printer.close();
}
}