本帖最后由 潘成旺 于 2015-2-28 13:53 编辑
我这段代码:
class Animal{
private String name;
private int age;
public Animal(){}
public Animal(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public void eat(){
System.out.println("我会吃饭");
}
}
class Dog extends Animal{
public Dog(){}
public Dog(String name,int age){
super.setName() = name;
super.setAge() = age;
}
public void run(){
System.out.println("我还会跑步");
}
}
class Cat extends Animal{
public Cat(){}
public Cat(String name,int age){
super.setName() = name;
super.setAge() = age;
}
public void zhuoMiCang(){
System.out.println("我还会捉迷藏");
}
}
class AnimalDemo {
public static void main(String[] args){
Dog d = new Dog();
d.setName("狗");
d.setAge(20);
System.out.println("姓名:"+d.getName()+" 年龄:"+d.getAge()+"岁");
d.eat();
d.run();
System.out.println("------------");
Dog dd = new Dog("狗",20);
System.out.println("姓名:"+dd.getName()+" 年龄:"+dd.getAge()+"岁");
dd.eat();
dd.run();
System.out.println("------------");
Cat c = new Cat();
c.setName("猫");
c.setAge(17);
System.out.println("姓名:"+c.getName()+" 年龄:"+c.getAge()+"岁");
c.eat();
c.zhuoMiCang();
System.out.println("------------");
Cat cc = new Cat("猫",17);
System.out.println("姓名:"+cc.getName()+" 年龄:"+cc.getAge()+"岁");
cc.eat();
cc.zhuoMiCang();
System.out.println("------------");
}
}
这样写报错:
---------- javac ----------
AnimalDemo.java:28: 错误: 无法将类 Animal中的方法 setName应用到给定类型;
super.setName() ;
^
需要: String
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
AnimalDemo.java:29: 错误: 无法将类 Animal中的方法 setAge应用到给定类型;
super.setAge() ;
^
需要: int
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
AnimalDemo.java:38: 错误: 无法将类 Animal中的方法 setName应用到给定类型;
super.setName() ;
^
需要: String
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
AnimalDemo.java:39: 错误: 无法将类 Animal中的方法 setAge应用到给定类型;
super.setAge() ;
^
需要: int
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
4 个错误
输出完成 (耗时 1 秒) - 正常终止
---------------------------------------------------------------------------------------------
然后我回头看视频里面的代码
那个 super.setName() = name;
super.setAge() = age;
写成 super(name,age);
这样就没错了,这是为啥呀;搞蒙了。。。。
|
|