Giáo trình Java P6 - Pdf 67

Kế thừa và đa hình
Kế thừa và đa hình
2
NguyễnViệtHà
Nội dung

Đa hình

upcasting

liên kết động

Lớp và phương thức trừu tượng

Đa kế thừa và giao diện

Một cách lập trình tổng quát
Kế thừa và đa hình
3
NguyễnViệtHà
Tài liệu tham khảo

Thinking in Java, chapter 7, 8

Java how to program, chapter 9
Kế thừa và đa hình
4
NguyễnViệtHà
Polymorphism (đa hình) là gì

Polymorphism: nhiều hình thức, nhiều kiểu

Person p;
Employee e = new Employee();
p = (Person) e;
p.setName(...);
p.setSalary(...); // compile error
Person
-name
-birthday
+setName()
+setBirthday()
Employee
-salary
+setSalary()
+getDetail()
Kế thừa và đa hình
7
NguyễnViệtHà
String teamInfo(Person p1, Person p2) {
return "Leader: " + p1.getName() +
"; member: " + p2.getName();
}
...
Employee e1, e2;
Manager m1, m2;

System.out.println(teamInfo(e1, e2));
teamInfo(m1, m2); teamInfo(m1,e2);
Kế thừa và đa hình
8
NguyễnViệtHà

Employee list[];
...
public void add(Employee e) {...}
public void print() {
for (int i=0; i<list.length; i++) {
System.out.println(list[i].getDetail());
...
}
...
EmployeeList list = new EmployeeList();
Employee e1; Manager m1;
...
list.add(e1); list.add(m1);
list.print();
Kế thừa và đa hình
11
NguyễnViệtHà
Liên kết tĩnh và liên kết động
Static and dynamic binding

Liên kết tĩnh: lời gọi hàm (phương thức) được
quyết định khi biên dịch, do đóchỉ có một phiên
bản của chương trình con được thực hiện

ưu điểm về tốc độ

Liên kết động: lời gọi phương thức được quyết
định khi thực hiện, phiên bản của phương thức
phù hợp với đối tượng được gọi


}
public class Derived extends Base {
private void f() {
System.out.println(”derived f()”);
}
public static void main(String args[]) {
Derived d = new Derived();
Base b = d;
b.show();
}
}
Kế thừa và đa hình
15
NguyễnViệtHà
Copy constructor(?)
class Employee extends Person {
double salary;
Employee(Employee e) {
super(e);
salary = e.salary;
}
...
}
Kế thừa và đa hình
16
NguyễnViệtHà
Gọi phương thức trong constructor
class Shape {
public Shape() {
draw();


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status