?
- ?ó là khi ph??ng th?c ?ã xu?t hi?n ? l?p cha và xu?t hi?n ti?p ? l?p con.
- Khi ??i t??ng thu?c l?p con g?i ph??ng th?c thì s? ch?n l?a và ch?y theo ph??ng th?c trong l?p con.
- N?u l?p con không có ph??ng th?c ?ó thì m?i lên ki?m ? l?p cha ?? ch?y.
- Ph??ng th?c ghi ?è có cùng tên, cùng tham s? truy?n vào, cùng ki?u giá tr? tr? v? v?i ph??ng th?c ? l?p cha!
- Ghi ?è là hình th?c ?a hình (polymorphism) trong quá trình th?c thi (Runtime)
? bài tr??c, ta bi?t ??n cách n?p ch?ng ph??ng th?c (Overloading method), nó cùng n?m trong 1 l?p. Còn ghi ?è ? ?ây, là sau khi l?p con k? th?a l?p cha c?a nó, ta ch?nh l?i 1 ph??ng th?c nào ?ó c?n thi?t, t?c là ghi ?è ?? ??t ???c theo ý mu?n!
2, Ví d?:
Ví d? 1: S? khác nhau gi?a Override và Overload
Ví d? 2:
- L?p "tên ng??i Vi?t" g?m 2 thu?c tính: "h?" và "tên" và ph??ng th?c hi?n th? tên ??y ?? theo th? t? h? + tên
- L?p "tên ng??i n??c ngoài" k? th?a t? l?p "tên ng??i Vi?t" , ph??ng th?c hi?n th? tên ??y ?? l?i theo th? t? tên + h?
- Nh? v?y, sau khi k? th?a ta ch? c?n ghi ?è l?i ph??ng th?c hi?n th? là xong!
Code:
PHP:
package javademoandroidvn;
class tenNguoiViet {
public String ten, ho;
public void show() {
System.out.println("Tên ??y ?? là: " + this.ho + " "+this.ten);
}
}
class tenNguoiNuocNgoai extends tenNguoiViet {
@Override
public void show() {
System.out.println("Full name: " + this.ten + " " + this.ho);
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
tenNguoiViet nguoiV = new tenNguoiViet();
nguoiV.ho = "Nguyen";
nguoiV.ten = "Hung";
nguoiV.show();
tenNguoiNuocNgoai nguoiNN = new tenNguoiNuocNgoai();
nguoiNN.ho = "Nguyen";
nguoiNN.ten = "Hung";
nguoiNN.show();
}
}
- L?p HocSinh g?m các thu?c tính: hoTen, lop, toan, ly, hoa và ph??ng th?c ?i?m trung bình là trung bình c?ng 3 môn
- L?p HocSinhChuyenToan k? th?a t? ph??ng th?c HocSinh, nh?ng khi tính ?i?m trung bình nhân ?ôi h? s? môn Toán r?i c?ng t?t c?, chia cho 4. Nh? v?y c?n ghi ?è ph??ng th?c ?i?m trung bình ? l?p HocSinhChuyenToan
Code:
PHP:
package javademoandroidvn;
class HocSinh {
private String hoTen;
private String lop;
private float toan, ly, hoa;
public String getHoTen() {
return hoTen;
}
public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}
public String getLop() {
return lop;
}
public void setLop(String lop) {
this.lop = lop;
}
public float getToan() {
return toan;
}
public void setToan(float toan) {
this.toan = toan;
}
public float getLy() {
return ly;
}
public void setLy(float ly) {
this.ly = ly;
}
public float getHoa() {
return hoa;
}
public void setHoa(float hoa) {
this.hoa = hoa;
}
public float diemTrungBinh() {
return (float) (this.toan + this.ly + this.hoa) / 3;
}
}
class HocSinhChuyenToan extends HocSinh {
@Override
public float diemTrungBinh() {
return (float) (this.getHoa() + this.getLy() + this.getToan() * 2) / 4;
}
}
public class JavaDemoAndroidVn {
public static void main(String[] args) {
HocSinh a = new HocSinh();
a.setHoTen("Vu Van Tuong");
a.setLop("At7a");
a.setToan(10.0f);
a.setLy(9.0f);
a.setHoa(8.0f);
System.out.println("Diem trung binh cua hoc sinh a la: " + a.diemTrungBinh());
HocSinhChuyenToan b = new HocSinhChuyenToan();
b.setHoTen("Nguyen Van B");
b.setToan(9.0f);
b.setHoa(7.0f);
b.setLy(8.0f);
System.out.println("Diem trung binh cua hoc sinh chuyen Toan b la: " + b.diemTrungBinh());
}
}
Tham kh?o thêm 2 video bên blog StudyAndShare:
Ngu?n : Android.vn