1.重写必须继承,重载不用。
2. 重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
3. 重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
4. 重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
总的来说,方法重载就是同名不同参.
方法重写代码:
父类:
package Demo;
public class Animal {
String name;
String cry;
int age;
public Animal() {
}
public Animal(String name,String cry,int age) {
this.name = name;
this.cry = cry;
this.age = age;
}
public String toString() {
return name+", "+cry+", "+age;
}
}
子类1:
package Demo;
public class Talent extends Animal {
String talent;
}
子类2:
package Demo;
public class Hobby extends Animal {
String hobby;
public String toString() {
//super
//在子类对象中,
//对父类对象的特殊引用
return super.toString()+", "+hobby;
}
}
测试类:
package Demo;
public class Test1 {
public static void main(String[] args) {
Animal p = new Animal("哮天犬","汪",100000);
Hobby s = new Hobby();
Talent e = new Talent();
s.name = "苍猫";
s.cry = "喵喵喵";
s.age = 999;
s.hobby = "睡觉钓鱼";
e.name = "老牛";
e.cry = "哞哞";
e.age = 5555;
e.talent = "排山倒海";
System.out.println(p.toString());
System.out.println(s.toString());
System.out.println(e.toString());
}
}