在java中,方法的重寫指的是子類重寫了父類中同名同參數列表的方法。通過方法的重寫,我們可以實現對父類方法的覆蓋,使得子類可以根據自己的需要重新定義父類方法的行為。
一、重寫的基本原則
Java中的方法重寫有以下幾個原則:
1. 方法名、參數列表必須一致,返回值也必須相同或者是其子類。
2. 重寫方法訪問修飾符不能比父類的窄,比如父類的訪問修飾符為public的話,那麼子類的就不能是protected或者default。
3. 重寫方法拋出的異常不能大於父類方法的異常。如果父類方法不拋出異常,在重寫時也不能拋出異常;如果父類方法拋出了異常,則子類重寫時可以不拋出異常,或者拋出相同的異常或其子類異常。
二、示例代碼
下面是一個重寫的示例代碼,其中Person為父類,Student為子類,Student重寫了Person中的introduce方法。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void introduce() {
System.out.println("我叫" + name + ",今年" + age + "歲。");
}
}
public class Student extends Person {
public Student(String name, int age) {
super(name, age);
}
@Override
public void introduce() {
System.out.println("我叫" + getName() + ",今年" + getAge() + "歲,我是一名學生。");
}
public static void main(String[] args) {
Person p = new Student("Tom", 20);
p.introduce();
}
}
這個例子中,Student類繼承了Person類,重寫了其中的introduce方法,輸出學生的信息。
三、重寫與多態
重寫與多態是Java中的兩個重要概念。多態是指同一種類型的對象,在不同的情況下會有不同的表現形式。而重寫是多態的一種實現方式。
我們來看下面的代碼:
public class Animal {
public void shout() {
System.out.println("動物發出叫聲");
}
}
public class Dog extends Animal {
@Override
public void shout() {
System.out.println("汪汪汪");
}
}
public class Cat extends Animal {
@Override
public void shout() {
System.out.println("喵喵喵");
}
}
public class AnimalTest {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.shout();
animal2.shout();
}
}
在AnimalTest類中,我們實例化了一個Dog和一個Cat對象,它們都是Animal類型的對象。在animal1和animal2調用shout()方法時,輸出的結果分別為“汪汪汪”和“喵喵喵”。
這個例子中,我們可以看到方法的重寫實現了多態,不同的子類重寫了父類的方法,使得同樣的方法調用在不同的情況下有了不同的效果,這就體現了Java中的多態性。
四、總結
方法的重寫是實現多態的一種方式,它能夠讓子類根據自己的需要重新定義父類方法的行為。方法的重寫需要遵循一定的規則和原則,同時它也與訪問修飾符、異常等相關。我們應該熟練掌握方法的重寫,掌握Java中的多態性,並在實際編程中靈活運用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154005.html