黑马程序员技术交流社区
标题:
【Day08】多态的主板示例。帮忙看一下我分析的流程对不对
[打印本页]
作者:
付江涛
时间:
2014-2-16 16:22
标题:
【Day08】多态的主板示例。帮忙看一下我分析的流程对不对
/*
需求:
电脑运行实例,
电脑运行基于主板
*/
interface PCI //PIC接口
{
public void open();
public void close();
}
class MainBoard //主板
{
public void run() //3、执行run方法,屏幕输出。
{
System.out.println("主板运行:MainBoard run");
}
public void usePCI(PCI p) // 5、传入声卡网卡对象。 //(PCI p = new NetCard() 接口型引用指向自己的子类对象)
{
if (p!=null) //6、判断 p!=null,向下执行。
{
p.open(); //7、因为p指向子类对象 NetCard ,所以执行NetCard的open方法。
p.close(); //9、因为p指向子类对象 NetCard ,所以执行NetCard的close方法。
}
}
}
class NetCard implements PCI//网卡
{
public void open()
{
System.out.println("网卡开启:NetCard open"); //8、执行
}
public void close()
{
System.out.println("网卡关闭:NetCard close"); //10、执行
}
}
class Demo
{
public static void main(String[] args)
{
MainBoard mb=new MainBoard(); //1、建立主板对象。
mb.run(); //2、对象调用“run方法”。
mb.usePCI(new NetCard()); //4、对象调用usePCI方法,传入网卡对象。
}
}
复制代码
@黑马牛人~~
按序号走的流程,帮忙看一下,总感觉哪不对劲
作者:
付江涛
时间:
2014-2-16 16:27
第8、第10应该是 子类NetCard 复写了 接口的方法吧?
作者:
疲劳的小马
时间:
2014-2-16 19:43
我也刚出学到这里。。按照你的流程走感觉没错呀。。执行顺序是对的。唯一注意的就是在第五步,多态那里PCI p = new NetCard(),当传入网卡的对象时,网卡类实现了PCI接口的方法,并对PCI接口的打开open(),关闭close()方法进行了重写,下面就是调用了。。你的顺序是完全正确的。
作者:
付江涛
时间:
2014-2-16 20:51
疲劳的小马 发表于 2014-2-16 19:43
我也刚出学到这里。。按照你的流程走感觉没错呀。。执行顺序是对的。唯一注意的就是在第五步,多态那里PCI ...
恩恩 对就行了 多谢解答~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2