您的位置:首页 > 其它

重写的方法形参必须相同

2013-12-29 13:21 169 查看
      子类重写父类的方法后可以实现多态,重写时形参必须和父类的形参相同。如果不同,那么就不算重写,对子类来说,该方法属于重载。如下面的equals方法:

package bzq12_29;

public class EqualsTest
{
public static void main(String[] args)
{
Object o = new Cat("小花", 3);
Cat o1 = new Cat("小花", 3);

System.out.println(o.equals(o1));
}
}

class Cat
{
private String name;
private int age;

public Cat(String name, int age)
{
this.name = name;
this.age= age;
}

public boolean equals(Cat c)
{ http://www.tanhuanyao.com   http:// tanhuanyao.com   http://www.bianshayao.com/   http://bianshayao.com/
Cat otherCat = (Cat)c;
return name.equals(otherCat.name) && age == otherCat.age;
}
}


由于Object的equals方法参数是Object,这里若在Cat类里写成Cat,那么对于Cat类来说就有两个重载的equals方法,一个是继承自父类的,一个是自己定义的,因为它们的形参不同。此时,用Object类对象引用Cat类对象不能实现多态,上面程序输出false.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: