父类默认访问权限的属性子类怎么访问?

父类默认访问权限的属性子类怎么访问?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.my.animal;
 
public class Animal {
 
        private String name;
        private int age;
        String father;
         
        public Animal() {
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public int getAge() {
            return age;
        }
 
        public void setAge(int age) {
            this.age = age;
        }
         
         
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.my.cat;
 
import com.my.animal.Animal;
 
public class Cat extends Animal{
 
    private String weight;
     
    public Cat() {
         
    }
     
    public void run() {
        System.out.println(this.getName()+"is running happily and his age is"+this.getAge());
    }
}

run方法中用this.father访问不到。

正在回答

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

2回答

1)你得看Cat与Animal是否在同一个包中,如果是那么this.father是可以访问的。如果不在同一个包中则访问不到。2)或者你把String father;改成public 也可以访问得到的。访问修饰符会在2-8会学到的。祝:学习愉快

慕盖茨9548946 2018-05-20 21:51:46

取值就用getter()方法访问啊,改变值用setter(x)方法,父类里面不是都写好了吗

  • 提问者 摄影祖师爷 #1
    我知道private 属性的取值用getter,其他访问权限的属性也要用getter吗?
    2018-05-20 22:09:36
  • 好帮手慕雪 回复 提问者 摄影祖师爷 #2
    不管什么属性都是可以设置set,get方法的。但建议还是把属性设置为private
    2018-05-21 10:05:14
  • 提问者 摄影祖师爷 回复 好帮手慕雪 #3
    我知道私有属性用 getter取值,但是比如非私有的,父类有个 String name,然后子类继承了父类,子类想要给Name赋值,必须要要用setter吗?我试了一席,用子类对象.name,不能赋值,可以解释下吗...
    2018-05-21 11:50:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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