黑马程序员技术交流社区

标题: 求教:如何对类对象中的方法进行重写 [打印本页]

作者: abathe    时间: 2014-12-8 14:01
标题: 求教:如何对类对象中的方法进行重写
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);
        }
}


作者: 爱吃小土豆    时间: 2014-12-8 15:22
把 System.out.println(color+","+num);  改成  System.out.println("颜色为"+color+"轮胎数为"+num);
c.run就调用这句话了,
是这个意思不?
作者: lwh316658735    时间: 2014-12-8 15:44
这需要继承才能重写
作者: lidinghai    时间: 2014-12-8 15:46
不是把最下面的 System.out.println(color+","+num);改为“System.out.println("颜色为"+color+"轮胎数为"+num)”就行了么
作者: Cfan_yang    时间: 2014-12-8 17:09
新建一个类继承Car类,然后覆写run方法。
作者: abathe    时间: 2014-12-8 19:17
爱吃小土豆 发表于 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};
但是报错:非法的表达式开始


作者: ben_vs_cong    时间: 2014-12-8 20:14
我觉得可以先定义一个抽象类,然后再写出实现类,再调用他相应的属性。
作者: 清诗纪事    时间: 2014-12-8 21:56
对一模一样的函数可以进行重写,包括返回值类型都要一样,你如果要重写Car类里的方法,首先需要继承,然后才行




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