Professional Documents
Culture Documents
Ke Thua New
Ke Thua New
Nội dung
Khái niệm
Cách khai báo
Các dạng kế thừa
Ghi đè phương thức (Overriding)
Overloading và Overriding
Khái niệm
Tính kế thừa là một tính chất quan trọng trong lập trình
hướng đối tượng. Cho phép định nghĩa một lớp mới dựa
trên các lớp đã có.
Một lớp kế thừa từ 1 lớp khác được gọi là lớp dẫn xuất
(derived class, sub class lớp con).
Một lớp được một lớp khác kế thừa gọi là lớp cơ sở
(base class, super class lớp cha).
Tính kế thừa thể hiện một mối quan hệ IS – A hay là mối
quan hệ cha con.
Lớp dẫn xuất sẽ kế thừa các thành phần dữ liệu và hàm
thành phần của lớp cơ sở đồng thời bổ sung thêm các
thành phần mới.
Lập trình hướng đối tượng
1
11/2/2021
2
11/2/2021
3
11/2/2021
Ví dụ 1
Họ tên
Địa chỉ
Con người Nhập thông tin
Xuất thông tin
Điểm
Mã sinh viên Trình độ
Tính điểm Chuyên ngành
Xét thi đua
4
11/2/2021
Ví dụ 2
public class Animal {
public void Eating(){
System.out.println("Eating");
}
}
public class Dog extends Animal{
public void Bark(){
System.out.println("Barking");
}
} Lập trình hướng đối tượng
5
11/2/2021
Ví dụ 3
public class testDog {
public static void main(String[] args) {
Dog x=new Dog();
x.Bark();
x.Eating();
}
}
Kết quả:
Barking
Eating
Lập trình hướng đối tượng
Ví dụ 3
public class Animal {
public void Eating(){
System.out.println("Eating"); }
}
public class Dog extends Animal{
public void Bark(){
System.out.println("Barking");
}
public void Eating(){
System.out.println("Eating cua lop Dog"); }
}
Lập trình hướng đối tượng
6
11/2/2021
Vid dụ 4
public class Animal {
public void Eating(){
System.out.println("Eating"); }
}
public class Dog extends Animal{
public void Bark(){
System.out.println("Barking");
}
public void Eating(){
super.Eating();
System.out.println("Eating cua lop Dog"); }
Lập trình hướng đối tượng
}
7
11/2/2021
8
11/2/2021
Ví dụ 5
class Operation{
int square(int n){
return n*n; } }
class Circle{
Operation op;//aggregation
double pi=3.14;
double area(int radius){
op=new Operation();
int rsquare=op.square(radius);
//code reusability (i.e. delegates the method call).
return pi*rsquare; }
public static void main(String args[]){
Circle c=new Circle();
double result=c.area(5);
System.out.println(result); } }
Ví dụ 6
public class Address {
String city,state,country;
public Address(String city, String state, String cou
ntry) {
this.city = city;
this.state = state;
this.country = country;
}
9
11/2/2021
Ví dụ 6
public class Emp {
private int id;
private String name;
private Address address;
public Emp(int id, String name,Address address) {
this.id = id;
this.name = name;
this.address=address;
}
void display(){
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+" "+addre
ss.country);
Lập trình hướng đối tượng
}
Ví dụ 6
public static void main(String[] args) {
Address address1=new Address("gzb","UP","india");
Address address2=new Address("gno","UP","india");
e.display();
e2.display();
}
}
Lập trình hướng đối tượng
10
11/2/2021
Overriding và Overloading
Method Overloading Method Overriding
Phương thức overloading được dùng để Phương thức overriding được dùng để
làm tăng tính rõ ràng (readability) của cung cấp khả năng thực thi đặc thù của
chương trình. phương thức mà đã được cung cấp ở lớp
cha.
Các phương thức overloading được triển Phương thức overriding xuất hiện trong
khai bên trong 1 lớp hai lớp có mối quan hệ IS_A
Trong phương thức overLoading tham số Phương thức overriding các tham số phải
phải khác nhau giống nhau.
Overloading là minh hoah cho tính đa hình Phương thức overriding là minh họa cho
trong thời gian biên dịch. (Compile time tính đa hình ở thời gian chạy (run time
polymorphism) polymorphism) .
Phương thức Overloading có thể giống Kiểu dữ liệu trả về của phương thức
hoặc khác nhau ở giá trị trả về. Nhưng Overriding phải giống nhau hoặc là hằng
tham số phải thay đổi. số.
11
11/2/2021
Bài tập:
1. Một đơn vị sản xuất gồm có các cán bộ là công nhân, kỹ sư,
nhân viên.
+ Mỗi cán bộ cần quản lý lý các thuộc tính: Họ tên, năm sinh, giới
tính, địa chỉ (Giới tính phải ghi là Nam hoặc Nữ, độ tuổi phải
>=18)
+ Các công nhân cần quản lý: Bậc (công nhân bậc 3/7, bậc 4/7 ...)
+ Các kỹ sư cần quản lý: Ngành đào tạo
+ Các nhân viên phục vụ cần quản lý thông tin: công việc
a. Xây dựng các lớp NhanVien, CongNhan, KySu kế thừa từ lớp
CanBo
Lập trình hướng đối tượng
b. Xây dựng các hàm để truy nhập, hiển thị thông tin và
kiểm tra về các thuộc tính của các lớp.
c. Tạo 3 đối tượng có kiểu lần lượt là công nhân, kỹ sư,
nhân viên. Thực hiện nhập và xuất thông tin các cán bộ
vừa tạo
12
11/2/2021
Bài tập
2. Hãy in thông tin chu vi, diện tích, độ dài cạnh,
chiều dài, chiều rộng của hình vuông và hình
chữ nhật nếu biết thông tin 4 đỉnh hình vuông,
hình chữ nhật đó.
13