Nội dung cơ bản của chương 4 Kế thừa trong bài giảng Lập trình hướng đối tượng nhằm trình bày về 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, kiểm soát truy cập. | 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 Tài liệu tham khảo Thinking in Java, chapter 6 Java how to program, chapter 9 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” 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 Ví dụ: has_a class Person { private String name; private Date birthday; public String getName() { return name; } . } class Employee { private Person me; private double salary; public String getName() { return (); } . } class Manager { private Employee me; private Employee assistant; public setAssistant(Employee e) {.} . } . Manager junior = new Manager(); Manager senior = new Manager(); (junior); // error 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 Thuật ngữ Kế thừa Lớp cơ sở, lớp cha Lớp dẫn xuất, lớp con 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; } } Employee e = new Employee(); ("John"); (); Person -name -birthday +setName() +setBirthday() Employee -salary +setSalary() +getDetail() private members class Employee extends Person { . public String getDetail() { String s; // s = name + "," + birthday; s = | 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 Tài liệu tham khảo Thinking in Java, chapter 6 Java how to program, chapter 9 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” 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 Ví dụ: has_a class Person { private String name; private Date birthday; public String getName() { return name; } . } class Employee { private Person me; private double salary; public String getName() { return (); } . } .