为什么在父类里定义好属性,在子类里通过四种方法都无法完成调用父类属性呢?不理解!

为什么在父类里定义好属性,在子类里通过四种方法都无法完成调用父类属性呢?不理解!

为什么在父类里定义好属性,在子类里通过四种方法都无法完成调用父类属性呢?不理解!

http://img1.sycdn.imooc.com//climg/5dc957ec096da73e03150146.jpg

http://img1.sycdn.imooc.com//climg/5dc95801099f83f703270143.jpg

http://img1.sycdn.imooc.com//climg/5dc9581e09f881ab03540140.jpg

http://img1.sycdn.imooc.com//climg/5dc9582a0925c97b03210148.jpg

http://img1.sycdn.imooc.com//climg/5dc95842096ffbbb03360172.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、直接写一个apple=5;是不符合语法规范的,需要在前面添加属性的类型,比如:  int apple=5; 

        2、this需要在普通方法或者构造方法的方法体中使用,例如:

public void play() {	
	//调用本类中的apple属性
	System.out.println(this.apple);	
}

        3、super同样需要在普通方法或者构造方法的方法体中使用,例如:

public void play() {
	//调用父类中的apple属性
	System.out.println(super.apple);
}

        4、Apple2 apple2 = new Apple2();  apple2.apple=5;的内容需要在主方法中呐,而不是直接写在类中。

综上所述,代码如下:

public class Apple {
	int apple=3;
}
public class Apple2 extends Apple{
	
	
	int apple=5; //继承后,子类中的apple属性
	public void play() {
		//直接调用apple属性
		System.out.println(apple);
		//调用本类中的apple属性
		System.out.println(this.apple);
		//调用父类中的apple属性
		System.out.println(super.apple);
	}
	public static void main(String[] args) {
		Apple2 apple2 = new Apple2();
		apple2.play();
		apple2.apple=6;
		
	}
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • Ceoking 提问者 #1
    问一下可不可以这样理解:子类继承父类,子类里就包含具有了父类的属性和方法,直接用this就可以调用了?
    2019-11-12 14:48:04
  • 好帮手慕小班 回复 提问者 Ceoking #2
    同学可以这样理解呐,但是有一个小知识点,子类继承父类,就是子类继承了父类的所有非私有属性和方法,在子类中可以调用父类中所有的非私有的属性和方法。很棒,继续加油~
    2019-11-12 15:15:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师