先上代码:
class Tz//主函数
{
public static void main(String[] args)//主函数入口
{
Notebook book=new Notebook();//创建一个Notebook类类型的对象book
book.run();//调用对象book的run方法
USB m=new USBMouse();//创建一个USBMouse类型的多态USB对象a
USB c=new USBCamera();
book.useUSB(c);//以a为参数调用book的useUSB方法
}
}
class Notebook
{
void run()
{
System.out.println("Notebook run !!");
}
void useUSB(USB usb)/*转换输入参数m为USB接口类多态对象,并通过调用接口函数,
达到“接口使用者”(book)控制“接口实现者”(m)的目的*/
{
//判断参数类型后进行向下转型
if(usb instanceof USBMouse)
{
USBMouse a=(USBMouse)usb;
sop(a.name);
}
else if(usb instanceof USBCamera)
{
USBCamera a=(USBCamera)usb;
sop(a.name);
}
}
void sop(String str)
{
System.out.println("您目前使用的是"+str+"!!!!");
}
usb.In();
usb.Out();
}
class USBMouse implements USB//使类USBMouse具备USB接口的方法
{
String name="USB鼠标";
public void In()
{
System.out.println("输入坐标及点击指令");
}
public void Out()
{
System.out.println("输出电源");
}
}
class USBCamera implements USB//使类USBCamera具备USB接口的方法
{
String name="USB摄像头";
public void In()
{
System.out.println("输入收集的图像数据");
}
public void Out()
{
System.out.println("输出电源");
}
}
interface USB//USB接口,拥有输入函数In()、输出函数Out()
{
String name="USB未知设备";
void In();
void Out();
}
抽象出方法如下图:
要点有:
一、Objectt默认为所有类的父类;
二、子类包含所有父类方法,并且可重载父类方法及成员变量;
三、主函数通过接口控制实例对象的过程为:
1.让某类型实现接口;
—》2.把该类型的实例对象转换为多态对象(接口类型);
—》3.操作实例对象重写的接口函数控制实例对象。
四、接口如图所示就像一块小硬件嵌入实例对象中,调用时通过接口函数即可调用!即插即用!
2015.1.27