Bài 5: Lớp trừu tượng<br />
<br />
Lê Hồng Phương<br />
phuonglh@gmail.com<br />
Khoa Toán-Cơ-Tin học,<br />
Trường Đại học Khoa học Tự nhiên, ĐHQG Hà Nội<br />
<br />
Nội dung<br />
●<br />
<br />
Lớp trừu tượng<br />
<br />
●<br />
<br />
So sánh giao diện và lớp trừu tượng<br />
<br />
●<br />
<br />
Sử dụng lớp trừu tượng<br />
<br />
2012-2013<br />
<br />
Lập trình hướng đối tượng: Lớp trừu tượng<br />
<br />
2<br />
<br />
Lớp trừu tượng<br />
●<br />
●<br />
<br />
●<br />
<br />
Lớp trừu tượng là lớp được khai báo là abstract.<br />
Phương thức trừu tượng là phương thức được khai<br />
báo abstract và không có thân.<br />
Ví dụ:<br />
public abstract class GraphicObject {<br />
// fields and methods<br />
}<br />
abstract void moveTo(double deltaX, double deltaY);<br />
<br />
2012-2013<br />
<br />
Lập trình hướng đối tượng: Lớp trừu tượng<br />
<br />
3<br />
<br />
Lớp trừu tượng<br />
●<br />
<br />
●<br />
<br />
Lớp trừu tượng không nhất thiết chứa phương thức<br />
trừu tượng.<br />
Nếu một lớp có chứa một phương thức trừu tượng<br />
thì lớp đó là lớp trừu tượng và phải được khai báo là<br />
abstract.<br />
public abstract class GraphicObject {<br />
// declare fields<br />
// declare non-abstract methods<br />
abstract void moveTo(double deltaX, double deltaY);<br />
abstract void draw();<br />
}<br />
<br />
2012-2013<br />
<br />
Lập trình hướng đối tượng: Lớp trừu tượng<br />
<br />
4<br />
<br />
Lớp trừu tượng<br />
●<br />
<br />
●<br />
<br />
Nếu A là một lớp trừu tượng, B là lớp con của A và B<br />
không không cung cấp cài đặt cụ thể cho mọi<br />
phương thức trừu tượng của A thì B cũng phải là lớp<br />
trừu tượng.<br />
Tương tự như đối với giao diện, ta không thể tạo đối<br />
tượng của một lớp trừu tượng:<br />
–<br />
<br />
2012-2013<br />
<br />
GraphicObject go = new GraphicObject();<br />
<br />
Lập trình hướng đối tượng: Lớp trừu tượng<br />
<br />
5<br />
<br />