关于java中的this用法

不是说this指的是当前对象吗。可为什么Fish类中的this能指Animal中的name,age变量呢?Fish类中的this指的不应该是Fish的对象吗。发错了,改一... 不是说this指的是当前对象吗。可为什么Fish类中的this能指Animal中的name,age变量呢?Fish类中的this指的不应该是Fish的对象吗。
发错了,改一下,Animal类中的两个private修饰符改为 protected修饰符。其他一样
展开
 我来答
百度网友10b6e8b
2017-12-01 · TA获得超过234个赞
知道小有建树答主
回答量:195
采纳率:68%
帮助的人:84.2万
展开全部
因为Fish类继承了Animal类,所以他就拥有Animal的所有方法和变量,所以Fish声明的对象用this能指出name和age
MRU1987刘
2017-12-01 · 超过34用户采纳过TA的回答
知道答主
回答量:199
采纳率:25%
帮助的人:49.3万
展开全部
不是吧 你这应该是报错的吧!!!Animal中的变量都私有了 不能继承下来的 Fish中怎么会有this.name 和this.age
追问
不好意思,截图截错了,其实我想问的是Animal中,用protected修饰的时候
追答
你可以初始化  尝试一下啊  把animal中的name age 和继承过来的name age 都在构造中初始化了  然后做个测试类 就知道你想要的答案了
我给你个例子
package test;
public class Animal {
public String name;
public int age;
Animal(){
this.name="Animal";
this.age=11;
}
}
package test;
public class Fish extends Animal {
Fish(){
//super();不写默认是这样的
}
Fish(String name,int age){
this.name="Fish";
this.age=12;
}
public static void main(String[] args) {
Fish fish=new Fish();
//我估计你的误区在这里吧???你调用是空参构造 所以出来的是父类初始化中的属性
System.out.println(fish.name);
Fish fish1=new Fish("11",100);
//这里就证明的this是当前对象的引用了
System.out.println(fish1.name);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式