10-Java方法重寫
阿新 • • 發佈:2022-04-03
10.1 方法重寫基本介紹
方法重寫也叫方法覆蓋,就是子類有一個方法和父類的某個方法的名稱、返回型別、形參都是一樣,那麼這個子類的方法覆蓋了父類的方法。
10.2 方法重寫快速入門
這裡寫了一個Animal類和Dog類,Dog類繼承了Animal類,他們裡面有一個方法是一摸一樣的。
10.3 方法重寫注意事項和使用細節
- 子類的方法的引數、方法名稱要和父類的引數和方法名稱完全一樣。
- 子類方法的返回型別和父類方法的返回型別要一樣,或者是父類返回型別的子類。如:父類的返回型別是Object,子類方法的返回型別是String
- 子類方法不能縮小父類方法的訪問許可權。
10.4 方法重寫練習
- 編寫一個Person類,包括屬性private(name,age),構造器、方法say(返回子喔介紹的字串)。
- 編寫一個Student類,繼承Person類,增加private id、score,以及構造器,定義say()方法(返回自我介紹的資訊)。
- 在main中,分別建立Person和Student物件,呼叫say()方法輸出自我介紹。
package com.edu.override_; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String say() { return "name=" + name + "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; } }
package com.edu.override_; public class Student extends Person { private int id; private double score; public String say() { return super.say() + "id=" + id + "score=" +score; } public Student(String name, int age, int id, double score) { super(name, age); this.id = id; this.score = score; } public int getId() { return id; } public void setId(int id) { this.id = id; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } }
package com.edu.override_;
import javax.swing.plaf.synth.SynthOptionPaneUI;
public class OverrideExercise {
public static void main(String[] args) {
Person person = new Person("jack", 30);
System.out.println(person.say());
Student student = new Student("smith",19,123456 ,99.8);
System.out.println(student.say());
}
}