A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蝶的历练 中级黑马   /  2013-3-29 18:31  /  1909 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蝶的历练 于 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, 下载次数: 37)

为什么没显示

为什么没显示

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

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

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

3 个回复

正序浏览
呵呵,很形象,  接口实现, 重写方法,  比喻很强大
回复 使用道具 举报
亲,没掉用网卡的功能函数,怎么运行啊。在MainBoard类中调用网卡类功能函数即可。
回复 使用道具 举报
本帖最后由 _王涛 于 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());
        }
}
结果:
开机了
无设备使用
读取网卡数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马