黑马程序员技术交流社区

标题: 继承问题 [打印本页]

作者: 蝶的历练    时间: 2013-3-29 18:31
标题: 继承问题
本帖最后由 蝶的历练 于 2013-4-1 21:37 编辑

/*主板的实例
    1. 描述主板
          开机,使用USB设备
        2. 描述USB接口
          定义2个功能,规则
          读取数据,写入数据

        3. 描述网卡,网卡接入USB接口上
           网卡实现USB接口*/
interface useUSB
{
        public abstract void read();

        public abstract void write();
}

class MainBoard
{
        public void openPower()
        {
                System.out.println("开机了");
        }
        public void useUSB(useUSB u)
        {
                if(u==null)
        {
                System.out.println("无设备使用");
                return;
        }        
        }
        
}

class NetCard implements useUSB
{
        public void read()
{
        System.out.println("读取网卡数据");
}
        public void write()
{
        System.out.println("写入网卡数据");
}
}
class Computer1
{
        public static void main (String [] args)
        {
                MainBoard mb=new MainBoard ();
                mb.openPower();
                mb.useUSB(null);
                mb.useUSB(new NetCard());
        }
}

QQ截图20130329183001.jpg (7.19 KB, 下载次数: 36)

为什么没显示

为什么没显示

QQ截图20130329183001.jpg (7.19 KB, 下载次数: 32)

为什么网卡的功能没显示,主函数里面不是已经创建对象了吗

为什么网卡的功能没显示,主函数里面不是已经创建对象了吗

作者: _王涛    时间: 2013-3-29 18:44
本帖最后由 _王涛 于 2013-3-29 18:45 编辑

是已经创建对象了,但是你的网卡功能又没有调用,更改后程序:
interface useUSB
{
        public abstract void read();

        public abstract void write();
}

class MainBoard
{
        public void openPower()
        {
                System.out.println("开机了");
        }
        public void useUSB(useUSB u)
        {
                if(u==null)
        {
                System.out.println("无设备使用");
                return;
        }  
             u.read();   
        }
        
}

class NetCard implements useUSB
{
        public void read()
{
        System.out.println("读取网卡数据");
}
        public void write()
{
        System.out.println("写入网卡数据");
}
}
class A
{
        public static void main (String [] args)
        {
                MainBoard mb=new MainBoard ();
                mb.openPower();
                mb.useUSB(null);
                mb.useUSB(new NetCard());
        }
}
结果:
开机了
无设备使用
读取网卡数据

作者: 张玉保    时间: 2013-3-29 20:48
亲,没掉用网卡的功能函数,怎么运行啊。在MainBoard类中调用网卡类功能函数即可。
作者: zhang2    时间: 2013-6-14 09:02
呵呵,很形象,  接口实现, 重写方法,  比喻很强大




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2