THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 142

này, l p s n có đôi khi còn đ

c g i là l p

ớ ẵ

ượ ọ

cha mẹ và l p m i đ c g i là l p

ớ ượ ọ

con.

u đi m c b n c a đ c đi m này là b n có th b sung đ

c nh ng ph

ng th c và bi n th c th mà

Ư

ơ ả ủ

ể ổ

ượ

ươ

ế

không c n s a đ i l p cha m . Đi u này đ c bi t h u ích đ i v i các l p Java, vì b n có mu n cũng

ầ ử

ổ ớ

ệ ữ

ố ớ

ch ng th s a đ i đ

c chúng.

ể ử

ổ ượ

N u b n đã làm các bài t p GridWorld r i ( các Ch

ng

ế

ồ ở

ươ 5 10), b n s th y m t s ví d v th a k :

ạ ẽ ấ

ộ ố

ụ ề ừ ế

public class

BoxBug

extends

Bug {

private int

steps;

private int

sideLength;

public

BoxBug(

int

length) {

steps = 0;

sideLength = length;

}

}

BoxBug extends Bug nghĩa là BoxBug là m t lo i

ạ Bug m i đ a k th a nh ng ph ng th c và bi n th c

ớ ự ế ừ

ươ

ế

th c a

ể ủ Bug. Ngoài ra:

L p con có th có thêm các bi n th c th khác. Trong ví d này, các

ế

BoxBug có steps và sideLength.

L p con có th có thêm các ph

ng th c khác. Trong ví d này, các

ươ

BoxBug có thêm m t constructor

nh n vào tham s nguyên.

L p con có th

ghi đè lên m t ph ng th c th a h ng t l p cha m . Trong ví d này, l p con cung

ươ

ưở

ừ ớ

c p ph

ng th c

ươ

ứ act (không ch ra đây), đ ghi đè lên ph ng th c

ươ

ứ act c a l p cha m .

ủ ớ

N u b n đã làm các bài t p v đ h a Ph l c

ế

ề ồ ọ ở

ụ ụ A, b n còn th y m t ví d n a:

ụ ữ

public class

MyCanvas

extends

Canvas {

public void

paint(Graphics g) {

g.fillOval(100, 100, 200, 200);

}

}

MyCanvas là m t ki u m i c a

ớ ủ Canvas, ch ng có thêm ph ng th c hay bi n th c th nào, song nó ghi

ươ

ế

đè lên paint.
N u b n ch a t ng làm bài nào trong s đó thì gi đã là lúc r i!

ế

ư ừ

15.7 C u trúc th a k l p

ế ớ

Trong Java, t t c m i l p đ u m r ng t m t l p nào đó khác. L p c b n nh t đ

c g i là

ấ ả ọ ớ

ở ộ

ừ ộ ớ

ớ ơ ả

ấ ượ ọ

Object. Nó

không ch a bi n th c th nào, nh ng có cung c p các ph

ng th c

ế

ư

ươ

ứ equals và toString, cùng nh ng

ph

ng th c khác.

ươ

Nhi u l p m r ng

ề ớ

ở ộ Object, g m c h u h t nh ng l p ta đã vi t và nhi u l p Java khác,

ả ầ

ế

ế

ề ớ

nh

ư java.awt.Rectangle. B t kì l p nào không nói rõ tên l p cha m ra, thì đ u m c đ nh là th a h ng

ặ ị

ưở

t

ừ Object.

Tuy v y, m t s chu i th a k thì dài h n. Ch ng h n,

ộ ố

ừ ế

ơ

ạ javax.swing.JFrame m r ng

ở ộ java.awt.Frame,

đ n l

t nó l i m r ng

ế ượ

ở ộ Window, đ n l t nó m r ng

ế ượ

ở ộ Container, đ n l t nó m r ng

ế ượ

ở ộ Component,