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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© abathe 中级黑马   /  2014-12-8 14:01  /  1395 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class NiMingObject
{
        public static void main(String[] args)
        {       
                show(new Car())
        }
//需求:汽修厂对汽车进行改装,将车的颜色改为黑色,三个轮胎。
        public static void show(Car c)  //将匿名对象作为实际参数进行传递
        {
                c.color="black";
                c.num=3;
                c.run();                       :sleepy::sleepy::sleepy::sleepy::sleepy:  如何将run()方法的内容 改为“System.out.println("颜色为"+color+"轮胎数为"+num)”??????
        }
}
class Car
{
        String color="red";
        int num=4;
        void run()
        {
                System.out.println(color+","+num);
        }
}

7 个回复

倒序浏览
把 System.out.println(color+","+num);  改成  System.out.println("颜色为"+color+"轮胎数为"+num);
c.run就调用这句话了,
是这个意思不?
回复 使用道具 举报
这需要继承才能重写
回复 使用道具 举报
不是把最下面的 System.out.println(color+","+num);改为“System.out.println("颜色为"+color+"轮胎数为"+num)”就行了么
回复 使用道具 举报
新建一个类继承Car类,然后覆写run方法。
回复 使用道具 举报
爱吃小土豆 发表于 2014-12-8 15:22
把 System.out.println(color+","+num);  改成  System.out.println("颜色为"+color+"轮胎数为"+num);
c.r ...

只想在当前生成的对象中改变run()函数,类似于c.num=3在当前对象中改变num值为3
试过这样的方式
c.run()={System.out.println("颜色为"+color+"轮胎数为"+num};
但是报错:非法的表达式开始

回复 使用道具 举报
我觉得可以先定义一个抽象类,然后再写出实现类,再调用他相应的属性。
回复 使用道具 举报
对一模一样的函数可以进行重写,包括返回值类型都要一样,你如果要重写Car类里的方法,首先需要继承,然后才行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马