关于子类父类

来源:9-1 Java 中的继承

qq_淹死的鱼_3

2016-11-06 09:24

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

写回答 关注

6回答

  • 慕移动9181930
    2022-03-25 15:22:48
  • 沉下心来
    2016-11-22 13:25:37

    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类内的方法外就没法赋值,不知道因为啥。

  • qq_淹死的鱼_3
    2016-11-06 11:20:07

    写了extends啊

  • 慕粉4116127
    2016-11-06 11:01:39

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

    public class Dog extends Animal

  • qq_淹死的鱼_3
    2016-11-06 09:53:17

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

    wcd00

    代码贴出来看看

    2016-11-09 11:50:25

    共 1 条回复 >

  • 謉厲
    2016-11-06 09:43:24
    super.age是Animal的属性,age是Dog的属性,在Dog中重定义age属性,应该是说Amimal的age不适用Dog

Java入门第二季 升级版

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

530554 学习 · 6091 问题

查看课程

相似问题