Kế thừa – Đa hìnhMục tiêu của bài: Nhằm trang bị cho người học: Kiến thức và kỹ năng về tính thừa kế.. Kiến thức và kỹ năng về tính đa hình.. Các kiến thức về lớp trừu tượng.. Kiến t
Trang 1Bài 5 Kế thừa – Đa hình
Mục tiêu của bài:
Nhằm trang bị cho người học:
Kiến thức và kỹ năng về tính thừa kế.
Kiến thức và kỹ năng về tính đa hình.
Các kiến thức về lớp trừu tượng.
Kiến thức và kỹ năng về các phương thức, các thành phần static.
Kiến thức và kỹ năng về tham số và các phương thức nạp chồng.
Kiến thức và kỹ năng về thuộc tính.
Trang 2Trong C#, khi ta t o m t l p k th a b ng cách công ạ ộ ớ ế ừ ằ
Trong C#, khi ta t o m t l p k th a b ng cách công ạ ộ ớ ế ừ ằ
m t thêm d u “:” và sau tên c a l p k th a và theo sau đó ộ ấ ủ ớ ế ừ
m t thêm d u “:” và sau tên c a l p k th a và theo sau đó ộ ấ ủ ớ ế ừ
là l p c s nh sau: ớ ơ ở ư
là l p c s nh sau: ớ ơ ở ư
public class ListBox : Window
có nghĩa là ta khai báo m t l p m i ListBox k th a t l p ộ ớ ớ ế ừ ừ ớ
có nghĩa là ta khai báo m t l p m i ListBox k th a t l p ộ ớ ớ ế ừ ừ ớ
Window.
Trang 31 Sự kế thừa
class Animal
{
protected int ifoots;
protected string sName;
Trang 51 Sự kế thừa
ví d trên, Dog và Chicken là hai l p k th a t l p Animal, do
Ở ví d trên, Dog và Chicken là hai l p k th a t l p Animal, do ụ ớ ế ừ ừ ớ
đó các thu c tính nh s chân, ifoots và tên sName đ ộ ư ố ươ ng nhiên xu t ấ
đó các thu c tính nh s chân, ifoots và tên sName đ ộ ư ố ươ ng nhiên xu t ấ
hi n trong hai l p này và cho phép s d ng T ệ ớ ử ụ ươ ng t , các hàm nh ự ư
hi n trong hai l p này và cho phép s d ng T ệ ớ ử ụ ươ ng t , các hàm nh ự ư
setName(), setFoot(), displayProperties() t i l p Animal cũng đ ạ ớ ượ ế c k
setName(), setFoot(), displayProperties() t i l p Animal cũng đ ạ ớ ượ ế c k
th a xu ng hai l p Dog và Chicken Do đó ta có th g i nh ng hàm này, ừ ố ớ ể ọ ữ
th a xu ng hai l p Dog và Chicken Do đó ta có th g i nh ng hàm này, ừ ố ớ ể ọ ữ
và k t qu hi n th khi g i hàm displayProperties() theo đ i t ế ả ể ị ọ ố ượ ng
và k t qu hi n th khi g i hàm displayProperties() theo đ i t ế ả ể ị ọ ố ượ ng
objDog và objChicken là khác nhau.
Trang 7}
}
Trang 82 Đa hình
K t qu ch y tr ế ả ạ ươ ng trình
6
Trang 11-L p niêm phong v i ý nghĩa trái ng ớ ớ ượ ẳ c h n v i l p tr u t ớ ớ ừ ượ ng L p niêm phong ớ
L p niêm phong v i ý nghĩa trái ng ớ ớ ượ ẳ c h n v i l p tr u t ớ ớ ừ ượ ng L p niêm phong ớ
không cho b t kỳ l p nào khác k th a nó Ta dùng t khoá ấ ớ ế ừ ừ
không cho b t kỳ l p nào khác k th a nó Ta dùng t khoá ấ ớ ế ừ ừ sealed đ thay cho đ thay cho ể ể
từ
khoá abstract đ đ đ đ ể ượ ớ ể ượ ớ c l p này c l p này.
Trang 154.1.1 Truyền tham trị
public class ThamChieuref
Trang 164.1.1 Truyền tham trị
Dùng tham chi u out hay ref ? ế
Dùng tham chi u out hay ref ? ế
public class ThamChieu
Trang 174.2 N p ch ng ph ạ ồ ươ ng
th c(Overloading) ứ
N p ch ng ph ạ ồ ươ ng th c xây d ng nhi u các ph ứ ự ề ươ ng th c cùng tên nh ng nh n các tham s khác ứ ư ậ ố
N p ch ng ph ạ ồ ươ ng th c xây d ng nhi u các ph ứ ự ề ươ ng th c cùng tên nh ng nh n các tham s khác ứ ư ậ ố
nhau.
namespace ConsoleApplication2 {
Trang 195 Đóng gói dữ liệu với thuộc tính
Đ c tính này cung c p kh năng b o v các tr ặ ấ ả ả ệ ườ ng d li u bên trong ữ ệ
Đ c tính này cung c p kh năng b o v các tr ặ ấ ả ả ệ ườ ng d li u bên trong ữ ệ
m t l p b ng vi c đ c và vi t chúng thông qua thu c tính Trong ngôn ộ ớ ằ ệ ọ ế ộ
m t l p b ng vi c đ c và vi t chúng thông qua thu c tính Trong ngôn ộ ớ ằ ệ ọ ế ộ
ng khác, đi u này có th đ ữ ề ể ượ c th c hi n thông qua vi c t o các ự ệ ệ ạ
ng khác, đi u này có th đ ữ ề ể ượ c th c hi n thông qua vi c t o các ự ệ ệ ạ
ph ươ ng th c l y d li u (getter method) và ph ứ ấ ữ ệ ươ ng th c thi t l p d ứ ế ậ ữ
ph ươ ng th c l y d li u (getter method) và ph ứ ấ ữ ệ ươ ng th c thi t l p d ứ ế ậ ữ
Trang 205.1 Thuộc tính đọc và ghi
public int PropertyName
{
get { return iValue; }
set { iValue = value; }
//Khai bao bien cuc bo
private string sName;
private string sAddress;
private int iAge;
//Khai bao thuoc tinh Name
public string Name
{ get { return sName;}
set {sName = value;}
}
//Khai bao thuoc tinh Address public string Address {
get { return sAddress; } set { sAddress = value; } }
//Khai bao thuoc tinh Age public int Age
{ get { return iAge; } set {
if (value > 100) iAge = 100;
else if (value < 0) value = 20;
else iAge = value;
} }