java的子类与父类问题!

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:49:27
public class Vehicle{
public void startUp(){System.out.println("一般车辆的启动方法!!");}

}

public class Car extends Vehicle{

public void startUp(){System.out.println("轿车的启动方法!!");}

}
public class Wen{
public static void main(String[] args)
{
Vehicle v=new Car();
System.out.print("实际调用的方法为:");
v.startUp();

}

} 将这个保存为什么才能运行后出现这种结果:
实际调用方法为:一般车辆的启动方法!!
是保存为什么才能启示.

你的子类覆盖了父类的方法,所以"一般车辆的启动方法!!"是不会出来了。除非在Car中的startUp中使用super.startUp();,但是这样会出现两个启动方法。
另外的方法就是初始化时候使用Vehicle v= new Vehicle();而不是new Car
============
没什么好保存为什么的,必然要保存为3个java文件,文件名分别为三个类的名字。

是保存为什么才能启示.

什么意思看不懂

不可能吧 这不是多态吗!

你用父类型Vehicle造型,而用子类型Car构造实例对象.V是子类的实例对象.但是却有父类的方法和子类的方法.因此你这个调用激发java的默认调用方式.你问的问题有些不清楚的地方,你是不是没有保存成几个类,而是放在了一起,这样的内部类调用肯定会出问题.

同一个文件,主类为public ,且包含main方法
修改为:
class Vehicle {
public void startUp() {
System.out.println("一般车辆的启动方法!!");
}

}

class Car extends Vehicle {

public void startUp() {
System.out.println("轿车的启动方法!!");
}

}

public class Wen {
public static void main(String[] args) {
Vehicle v = new Car();
System.out.print("实际调用的方法为:");
v.startUp();

}

}

汗.没碰到过这样的问题