重写的方法形参必须相同
2013-12-29 13:21
169 查看
子类重写父类的方法后可以实现多态,重写时形参必须和父类的形参相同。如果不同,那么就不算重写,对子类来说,该方法属于重载。如下面的equals方法:
由于Object的equals方法参数是Object,这里若在Cat类里写成Cat,那么对于Cat类来说就有两个重载的equals方法,一个是继承自父类的,一个是自己定义的,因为它们的形参不同。此时,用Object类对象引用Cat类对象不能实现多态,上面程序输出false.
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.
相关文章推荐