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

关于子类父类

既然Dog是Animal的子类,那他也有age属性,我为什么不能直接在Dog类里直接给age赋值呢

正在回答

6 回答

package com.wangqiang.inherit;

class Animal{

private String name;

int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

class Dog extends Animal{

static String food;

Animal an=new Animal();

void show(){

an.setName("小黑");

food="狗粮";

super.age=12;

System.out.println("name:"+an.getName()+"\n"+"age:"+age);

}

}

public class Inherit {

public static void main(String[] args) {

// TODO Auto-generated method stub

Dog dog = new Dog();

dog.show();

System.out.println("food"+dog.food);

}

}

这段可以赋值啊,不过如果在Dog类内的方法外就没法赋值,不知道因为啥。

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

写了extends啊

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

肯定是可以的,估计你的Dog类没有如此定义

public class Dog extends Animal

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

没看懂!我在animal里面只定义了age没有给它赋值,Dog继承了Animal,那Dog也有age属性吧,那我为什么不能在Dog输出age,或者给它赋值。报错的是Syntax error on token "age", VariableDeclaratorId expected after this token

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

wcd00

代码贴出来看看
2016-11-09 回复 有任何疑惑可以回复我~
super.age是Animal的属性,age是Dog的属性,在Dog中重定义age属性,应该是说Amimal的age不适用Dog
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530103    人
  • 解答问题       6086    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

关于子类父类

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信