为了账号安全,请及时绑定邮箱和手机立即绑定

我想问一下子类可以引用父类的对象吗

package com.imooc;


public class Vehicle {

public String name;

public int age;

public void manned() {

System.out.println("交通工具都具有载人的功能。");

System.out.println(name+"一般能载客"+age+"人。");

}

}


package com.imooc;


public class bus extends Vehicle {

public String name = "公共汽车";

public int age = 40;

// public void manned() {

// System.out.println("公共汽车一般能载客"+age+"人。");

// }

}


package com.imooc;


public class Test {


public static void main(String[] args) {

// TODO Auto-generated method stub

Vehicle obj1 = new Vehicle();

Vehicle obj2 = new bus();

Vehicle obj3 = new Boat();

Vehicle obj4 = new Airplane();

obj1.manned();

obj2.manned();

obj3.manned();

obj4.manned();

}


}

//  运行结果如下

交通工具都具有载人的功能。

null一般能载客0人。

交通工具都具有载人的功能。

null一般能载客0人。

交通工具都具有载人的功能。

null一般能载客0人。

交通工具都具有载人的功能。

null一般能载客0人。

//我想问一下子类可以引用父类的对象吗

正在回答

3 回答

你所出现的问题是Vehicle类引用Bus的对象,在调用manned(),由于Bus没有重写manned(),所以调用的是Vehicle的,而name和age自然也是Vehicle中的,若想实现想要功能,可以在子类中如Bus重写manned()方法即可

0 回复 有任何疑惑可以回复我~
#1

学海有涯吗 提问者

嗯,在子类中重写了方法,实现了想要的功能
2017-08-05 回复 有任何疑惑可以回复我~

不可以,子类不可以引用父类的对象,但父类可以引用子类的对象,即多态,在多态的那一节有讲

0 回复 有任何疑惑可以回复我~
#1

学海有涯吗 提问者

楼上说可以。。。怎么办
2017-08-05 回复 有任何疑惑可以回复我~

子类可以用父类的,public就是公共用的对象,你这个程序后面的都是调用父类对象的属性,而你父类对象没有定义属性,所以为0,你把父类写的对象去掉就行了

0 回复 有任何疑惑可以回复我~
#1

学海有涯吗 提问者

楼下说 不可以。。。。
2017-08-05 回复 有任何疑惑可以回复我~
#2

四海之内皆兄弟

父类对象没有定义属性,所以为0,我对这句话有问题,假设没有定义属性,则软件会有报错提示,而楼主编译通过,,,,,,
2017-08-05 回复 有任何疑惑可以回复我~
#3

qq_liveleilei_0 回复 学海有涯吗 提问者

他说的对的,子类有些属性是父类没有的,所以子类不能调用父类的对象。
2017-08-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我想问一下子类可以引用父类的对象吗

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号