xibu
2015-07-31 09:11
package immoc;
public class Transtration {
public static void main(String[] args){
double client;
double style;
double velocity;
Transtration obj1=new car();
Transtration obj2=new steamship();
Transtration obj3=new plan();
obj1.ship();
}
}
class car extends Transtration{
public void stration(double client){
client=30.0;
System.out.println("汽车在陆地上"+client);}
}
class steamship extends Transtration{
public void ship(double client ){
client=40.0;
System.out.println("轮般在海上运输"+client);
}
}
class plan extends Transtration{
public void air(double client){
client=50.0;
System.out.println("飞机在天空"+client);
}
}
父类创建对象 和引用那里不太会,,,,
obj1.ship();出问题了。
引用能调用什么方法,看的是这个引用的类型,就是说obj1只能调用他这个类(父类)里方法。
而你的父类中只有一个main方法,你只要在类里面建一个ship()方法就行了,只是不太符合常理,毕竟不是所有的交通工具都可以像船一样航行。
还有还有,如果可以调用ship方法,也一定要再回过头去看一下这个方法需不需要参数。
运行不出来吧,Transtration obj1=new car();是引用父类类型指向子类对象,你的这个代码里Transportation这个父类里没有方法,因此Transportation这个父类只有一个隐藏的同名无参构造方法 也就是Transportation(); 既然是引用父类类型指向子类对象,就是说obj1这个子类car的对象他跟父类的类型是一样的,只有一个无参的构造方法,这个无参的构造方法是car类里隐藏的car();所以你接下来的这些ship等等自己重写的方法在obj1里是没有的,所以调用不了,要调用只能调用obj1.car(); 最好是car obj1 = new car();这样就能随便调用你自己重写的方法了。
Java入门第二季 升级版
530644 学习 · 6091 问题
相似问题