Java问题需要标识符,我不是给了age和name吗?

img


为什么提示没有标识符,我不是给了吗?

img


package study;

public class Dog extends Animal {
public Dog() {
}

public Dog(int age, String name) {
    super. (age, name);
}

@Override
public void eat() {
    System.out.println(" 狗吃骨头");
}

}
另一个Cat类也是同样的问题

你得supe应该这样写 super(name,age);

super是基类的意思
super点后面你要写函数名呀
要么把点删了,就表示基类的构造函数
点括号是什么语法
age和name是参数,不是标识符
标识符是指令、函数这些东西
你不能不写函数名光写个括号呀

构造函数的问题,子类构造函数要调用父类的直接super(有参数就写,没参数不写); 这个不需要点的,修改如下:

public class Dog extends Animal {
    public Dog() {
    }
    public Dog(int age, String name) {
        super(age, name);
    }
    @Override
    public void eat() {
        System.out.println(" 狗吃骨头");
    }
}

Cat类同样的修改即可。

为什么还要用super 去. 呢