本帖最后由 杨翔 于 2013-1-15 22:26 编辑
这个是教学视频里的一段代码,有个地方不太明白,pci是个接口不能够实例对象,为什么在代码中
把NetCard的匿名对象传给 usePCI 函数,就可以调用PCI中的方法了呢,我目前的理解这是因为多态,因为
p实际指向的是NetCard的对象,而NetCard实现了PCI的方法,但是老是感觉有些空泛,谁能帮我详细讲一下?
最好是从内存结构方面?- interface PCI
- {
- public void open();
- public void close();
- }
- class MainBoard
- {
- public void run()
- {
- System.out.println("mainboard run ");
- }
- public void usePCI(PCI p)
- {
- if(p!=null)
- {
- p.open();
- p.close();
-
- }
- }
- }
- class NetCard implements PCI
- {
- public void open()
- {
- System.out.println("netcard open");
- }
- public void close()
- {
- System.out.println("netcard close");
- }
- }
- class Test1
- {
- public static void main(String[] args)
- {
- MainBoard mb = new MainBoard();
- mb.run();
- mb.usePCI(new NetCard());
-
-
- }
- }
复制代码 |