You are on page 1of 19

K tha

Ni dung
K tha Xp chng v n cc phng thc

a hnh
Cc phng thc v lp cui Cc phng thc v lp tru tng

K tha
Mt lp m k tha t lp khc c gi l lp con (lp

dn xut, lp c m rng)
Lp cha cng cn c gi lp c s. Trong Java, ngoi tr lp Object, mi lp u c mt v

ch mt lp cha.

K tha
Mt lp con k tha tt c cc thnh vin (thuc tnh,

phng thc v cc lp lng trong) ca lp cha.


Cc phng thc to khng l thnh vin, do chng

khng th c k tha bi cc lp con.


Phng thc to ca lp cha c th c gi t lp con.

K tha
public class Bicycle { Cc thuc tnh biu din private int cadence = 0; trng thi ca i tng private int speed = 0; private int gear = 1; void changeCadence(int newValue) { cadence = newValue; } void changeGear(int newValue) { Cc phng thc nh ngha gear = newValue; cch i tng tng tc vi } void speedUp(int increment) { mi trng bn ngoi speed = speed + increment; } void applyBrakes(int decrement) { speed = speed - decrement; } void printStates() { System.out.println("(" + cadence + ", " + speed + ", " + gear + )); } 5 }

K tha
public class Bicycle { // ...

public Bicycle(int c, int s, int g) { this.cadence = c; this.speed = s; this.gear = g; }


// }

Phng thc to nh ngha cch khi to i tng

Bicycle myBike = new Bicycle(30, 15, 4);

K tha
public class MountainBike extends Bicycle { private int seatHeight; public MountainBike(int height, int cadence, int speed, int gear) { super(cadence, speed, gear); seatHeight = height; } public int getSeatHeight() {

Gi phng thc to ca lp cha khi to ba thuc tnh Bycicle

return seatHeight;
} }

MountainBike

K tha
Mt lp con k tha tt c cc thnh vin public v protected

ca lp cha.
Nu lp con trong cng mt gi vi lp cha th n cng

k tha cc thnh vin package-private ca lp cha.


Lp con khng k tha cc thnh vin private ca lp cha.
Nu mun truy cp cc thnh vin ny, n phi gi cc phng

thc public hay protected ca lp cha.

Ni dung
K tha Xp chng v n cc phng thc

a hnh
Cc phng thc v lp cui Cc phng thc v lp tru tng

Xp chng v n phng thc


Nu ta khai bo mt trng trong lp con c cng tn vi

mt trng ca lp cha th ta n trng .(khng nn lm nh vy).


Nu ta vit mt phng thc c cng nguyn mu vi mt

phng thc trong lp cha th ta xp chng phng thc ny.


Nu ta vit mt phng thc tnh c cng nguyn mu vi

mt phng thc trong lp cha th ta n phng thc ny.

10

Xp chng v n phng thc


public class MountainBike extends Bicycle { //... @Override void applyBrakes(int decrement) { // ... Xp chng phng thc ca } lp cha //... }

Xp chng cho php lp con k tha nhng hnh vi c

ca lp cha trong khi c th sa i chng cho ph hp.

S dng nhn @Override ch dn cho trnh bin dch

(ty chn).

11

p kiu i tng
Nu lp A l mt lp con ca lp B th ta c th ni A l B.

V d:
MountainBike l Bicycle Car l Vehicle Dog l Animal

A l Object

p kiu i tng: chuyn mt i tng t kiu ny

thnh kiu khc.


12

p kiu i tng
p kiu ngm nh:
Bicycle b = new MountainBike(100, 30, 15, 4);

y, b va l Bicycle va l MountainBike. C th hiu b

c p t kiu con v kiu cha.


p kiu r rng:
if (b instanceof MountainBike) {
MountainBike myBike = (MountainBike) b; }

13

Ni dung
K tha Xp chng v n cc phng thc

a hnh
Cc phng thc v lp cui Cc phng thc v lp tru tng

14

a hnh
a hnh l kh nng mt i tng hoc mt hnh vi ca

i tng c nhiu dng khc nhau.


Hnh vi ca i tng c xc nh khi chy chng

trnh, ty thuc vo kiu ca i tng, ch khng phi c xc nh lc dch chng trnh.


Gi l c ch lin kt mun hoc lin kt ng. a hnh l khi nim rt quan trng trong lp trnh hng

i tng.
Bn cn nm vng khi nim v cch dng a hnh.
15

a hnh
V d:
Pet l mt lp m t mt con th cnh, c phng thc void say(). Dog l mt lp con ca Pet v xp chng phng thc say(). Cat cng l mt lp con ca Pet v xp chng phng thc say().

16

a hnh
public class Pet { public void say() { System.out.println("I don't know who I am."); } } class Dog extends Pet { @Override public void say() { System.out.println("Wooof!"); } } class Cat extends Pet { @Override public void say() { System.out.println("Meow!"); } 17} Pet

Cat

Dog

a hnh
public class PetTester { public static void main(String[] args) { Pet p;

p = new Pet(); p.say();


p = new Dog(); p.say(); p = new Cat(); p.say();

18

Lp Object
Lp java.lang.Object l lp gc ca mi lp. Mt s phng thc quan trng ca Object m cc lp con

chu ca n c th k tha hoc chng l:


protected Object clone() throws CloneNotSupportedException; public boolean equals(Object obj); protected void finalize() throws Throwable; public int hashCode(); public String toString();

19

You might also like