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

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

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

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需要在普通方法或者构造方法的方法体中使用,例如:

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

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

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

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

综上所述,代码如下:

1
2
3
public class Apple {
    int apple=3;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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