Kế thừa java
lượt xem 65
download
Tồn tại nhiều loại đối tượng có các thuộc tính và hành vi tương tự hoặc liên quan đến nhau Person, Student, Manager,… Xuất hiện nhu cầu sử dụng lại cácmã nguồn đã viết Sử dụng lại thông qua copy Sử dụng lại thông qua quan hệ has_a Sử dụng lại thông qua cơ chế “kế thừa”
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Kế thừa java
- Kế thừa
- Nội dung Vấn đề sử dụng lại Sử dụng lại bằng kế thừa Kế thừa trong Java định nghĩa lớp kế thừa thêm phương thức, thuộc tính kiểm soát truy cập constructor Lớp Object Nguyễn Việt Hà Kế thừa 2
- Tài liệu tham khảo Thinking in Java, chapter 6 Java how to program, chapter 9 Nguyễn Việt Hà Kế thừa 3
- Sử dụng lại Tồn tại nhiều loại đối tượng có các thuộc tính và hành vi tương tự hoặc liên quan đến nhau Person, Student, Manager,… Xuất hiện nhu cầu sử dụng lại các mã nguồn đã viết Sử dụng lại thông qua copy Sử dụng lại thông qua quan hệ has_a Sử dụng lại thông qua cơ chế “kế thừa” Nguyễn Việt Hà Kế thừa 4
- Sử dụng lại Copy mã nguồn Tốn công, dễ nhầm Khó sửa lỗi do tồn tại nhiều phiên bản Quan hệ has_a Sử dụng lớp cũ như là thành phần của lớp mới Sử dụng lại cài đặt với giao diện mới Phải viết lại giao diện Chưa đủ mềm dẻo Nguyễn Việt Hà Kế thừa 5
- Ví dụ: has_a class Person { private String name; private Date bithday; public String getName() { return name; } ... } class Employee { private Person me; private double salary; public String getName() { return me.getName(); } ... } Nguyễn Việt Hà Kế thừa 6
- class Manager { private Employee me; private Employee assistant; public setAssistant(Employee e) {...} ... } ... Manager junior = new Manager(); Manager senior = new Manager(); senior.setAssistant(junior); // error Nguyễn Việt Hà Kế thừa 7
- Kế thừa Dựa trên quan hệ is_a Thừa hưởng lại các thuộc tính và phương thức đã có Chi tiết hóa cho phù hợp với mục đích sử dụng mới Thêm các thuộc tính mới Thêm hoặc hiệu chỉnh các phương thức Nguyễn Việt Hà Kế thừa 8
- Thuật ngữ Kế thừa Lớp cơ sở, lớp cha Lớp dẫn xuất, lớp con Nguyễn Việt Hà Kế thừa 9
- Kế thừa trong Java [public] class DerivedClass extends BaseClass { /* new features goes here */ } Ví dụ: class Employee extends Person { private double salary; public boolean setSalary(double sal) { ... salary = sal; return true; } } Nguyễn Việt Hà Kế thừa 10
- Person Employee e = new Employee(); -name -birthday e.setName("John"); +setName() e.setSalary(3.0); +setBirthday() Employee -salary +setSalary() +getDetail() Nguyễn Việt Hà Kế thừa 11
- private members class Employee extends Person { ... public String getDetail() { String s; // s = name + "," + birthday; s = getName() + "," + getBirthday(); s += "," + salary; return s; } } Nguyễn Việt Hà Kế thừa 12
- Mức truy cập protected Để đảm bảo che dấu thông tin, thông thường các thuộc tính được khai báo là private Đối tượng thuộc lớp dẫn xuất phải truy cập tới chúng thông qua các phương thức get và set. Mức truy cập protected giải quyết vấn đề này Đối tượng của lớp dẫn xuất truy cập được các protected members của lớp cơ sở Các đối tượng khác không truy cập được Nguyễn Việt Hà Kế thừa 13
- public class Person { protected Date birthday; protected String name; ... } public class Employee extends Person { ... public String getDetail() { String s; s = name + "," + birthday; s += "," + salary; return s; } } Nguyễn Việt Hà Kế thừa 14
- Các mức kiểm soát truy cập Modifier Same Same Subclass Universe class package private Yes package Yes Yes (default) protected Yes Yes Yes public Yes Yes Yes Yes Nguyễn Việt Hà Kế thừa 15
- Trong cùng gói public class Person { Date birthday; String name; ... } public class Employee extends Person { ... public String getDetail() { String s; s = name + "," + birthday; s += "," + salary; return s; } } Nguyễn Việt Hà Kế thừa 16
- package abc; Khác gói public class Person { protected Date birthday; protected String name; ... } import abc.Person; public class Employee extends Person { ... public String getDetail() { String s; s = name + "," + birthday; s += "," + salary; return s; } } Nguyễn Việt Hà Kế thừa 17
- Định nghĩa lại các phương thức Chúng ta có thể định nghĩa lại các phương thức của lớp cơ sở Đối tượng của lớp dẫn xuất sẽ hoạt động với phương thức mới phù hợp với nó Có thể tái sử dụng phương thức cùng tên của lớp cơ sở bằng từ khóa super Nguyễn Việt Hà Kế thừa 18
- package abc; Ví dụ public class Person { protected Date birthday; protected String name; public String getDetail() {...} ... } import abc; public class Employee extends Person { ... public String getDetail() { String s; s = super.getDetail() + "," + salary; return s; } } Nguyễn Việt Hà Kế thừa 19
- Định nghĩa lại phương thức Phải có quyền truy cập không chặt hơn phương thức được định nghĩa lại Phải có kiểu giá trị trả lại như nhau Nguyễn Việt Hà Kế thừa 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Kế thừa của java
30 p | 169 | 41
-
LTHDT - Bài 05. Kết tập và kế thừa
54 p | 1024 | 41
-
LTHDT - Bài 06. Một số kỹ thuật trong kế thừa
35 p | 106 | 22
-
Lập trình hướng đối tượng với Java - Bài 8 Kế thừa
13 p | 199 | 15
-
Bài giảng Lập trình nâng cao với Java
170 p | 99 | 14
-
Bài giảng Lập trình hướng đối tượng - Chương 4 Kế thừa
30 p | 108 | 10
-
Bài giảng môn Lập trình hướng đối tượng - Chương 4: Kế thừa và đa hình trên Java
42 p | 83 | 7
-
Bài giảng Công nghệ Java: Chương 6 - Trần Quang Diệu
52 p | 54 | 6
-
Bài giảng Lập trình Java: Bài 4 - Bùi Trọng Tùng
34 p | 63 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 3 (Phần 2) - Trần Minh Thái
118 p | 76 | 5
-
Bài giảng Lập trình hướng đối tượng - Bài 6: Một số kỹ thuật trong kế thừa
0 p | 109 | 5
-
Bài giảng Lập trình hướng đối tượng: Bài 6 - Kết tập và kế thừa
53 p | 19 | 4
-
Bài giảng Ngôn ngữ lập trình Java - Bài 4: Lớp (Classes) và kế thừa (Inheritance)
26 p | 39 | 4
-
Bài giảng Lập trình hướng đối tượng với Java - Chương 4: Tính kế thừa và đa hình
32 p | 58 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 7 - Một số kỹ thuật trong kế thừa
68 p | 24 | 4
-
Bài thực hành Lập trình Java 1 - Bài 7: Kế thừa
5 p | 234 | 3
-
Bài giảng Lập trình hướng đối tượng (Object Oriented Programming) - Chương 4: Kế thừa và đa hình trên Java
42 p | 55 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn