多态(向上转型、向下转型)
首相定义两个类People和OlePeople:
public class OldPeople {
public void ClassRoom()
{
System.out.println("进教室讲课!");
}
public void GoFish()
{
System.out.println("去钓鱼!!");
}
}
public class People extends OldPeople{
public void SeeMovie()
{
System.out.println("看电影");
}
public void GoFish()
{
System.out.println("钓鱼!");
}
}
public class Demo {
public static void main(String[] args) {
//多态形式
OldPeople person=new People();//向上转型
person.ClassRoom();
person.GoFish();
//要想实现People的特有属性SeeMovie ;
People p1=(People)person;//向下转型
p1.SeeMovie();
p1.ClassRoom();
//转型过程中,自始至终,只有子类对象在坐着类型的变化
}
实例(练习题):
class Demo
{
public static void main(String[] args)
{
TextBook text=new TextBook();
text.run();
text.usbRun(new Mouse());
}
}
interface USB
{
public void open();
public void close();
}
class TextBook
{
public void run()
{
System.out.println("笔记本运行");
}
public void usbRun(USB usb)
{
if(usb!=null)
{
usb.open();
usb.close();
}
}
}
class Mouse implements USB
{
public void open()
{
System.out.println("鼠标运行了!!");
}
public void close()
{
System.out.println("鼠标关闭了");
}
}