Bài giảng Lập trình trên Windows với Microsoft® .NET - Phần 5 - Hồ Hoàn Kiếm

Cho phép khai báo 1 lớp mới được dẫn xuất từ 1 lớp đã có.

Sử dụng lại các đọan mã đã viết .

Hổ trợ đơn thừa kế.

Không cho phép đa thừa kế.

Cho phép thực thi nhiều interface

 

ppt20 trang | Chuyên mục: Công Nghệ .NET | Chia sẻ: yen2110 | Lượt xem: 346 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình trên Windows với Microsoft® .NET - Phần 5 - Hồ Hoàn Kiếm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Lập trình trên Windows với Microsoft® .NET	 Giảng viên : Hồ Hoàn Kiếm 
Kế thừa trong C# 
Cho phép khai báo 1 lớp mới được dẫn xuất từ 1 lớp đã có. 
Sử dụng lại các đọan mã đã viết . 
Hổ trợ đơn thừa kế. 
Không cho phép đa thừa kế. 
Cho phép thực thi nhiều interface 
Kế thừa trong C# 
class Software 
{	 
 private int m_z; 
	 public int m_v; 
	 protected int m_x; 
	 public Software() 
	{ 
	m_x = 100; 
	} 
	 public Software(int y) 
	{ 
	m_x = y; 
 }	 
} 
Kế thừa trong C# 
class MicrosoftSoftware : Software 
	{ 
	 public MicrosoftSoftware() 
	{ 
	Console.WriteLine(m_x); 
	} 
	} 
Kế thừa trong C# 
class IBMSoftware : Software 
{ 
 public IBMSoftware( int y) : base(y ) 	{ 
	Console.WriteLine(m_x); 
 } 
 public IBMSoftware( string s, int f) : this (f) { 
	Console.WriteLine(s); 
 } 
}	 
Kế thừa trong C# 
static void Main( string [] args) 
{ 	 
	MicrosoftSoftware objMS = new MicrosoftSoftware(); 
	IBMSoftware objIBM1 = new IBMSoftware(50); 
	 IBMSoftware objIBM2 = new IBMSoftware("test",75); 
	Console.ReadLine();	 
} 
Kế thừa trong C# 
Từ khóa sealed : Lớp không cho phép kế thừa 
 public sealed class A 
 { 
 } 
 public class B : A 
 { 
 } 
 Lớp B không được phép kế thừa lớp A . 
Overriding Method 
class Animal 
{	 
	 public Animal() 
	{	 
	Console.WriteLine("Animal constructor"); 
 }	 
 	 public void Talk() 
	{ 
	Console.WriteLine("Animal talk"); 
 }	 
} 
Overriding Method 
class Dog : Animal 
 {	 
	 public Dog() { 
	Console.WriteLine("Dog constructor"); 
	} 
	 public new void Talk() 
	{ 
	Console.WriteLine("Dog talk"); 
	} 
 }	 
Overriding Method 
class Test 
 {	 
 static void Main(string[] args) 
	{	 
	Animal a1 = new Animal(); 
	a1.Talk(); 
	Dog d1 = new Dog(); 
	d1.Talk(); 
	} 
 }	 
Tính đa hình - Polymorphism 
class Animal 
{	 
	 public Animal() 
	{	 
	Console.WriteLine("Animal constructor"); 
 }	 
 	 public virtual void Talk() 
	{ 
	Console.WriteLine("Animal talk"); 
 }	 
} 
Tính đa hình - Polymorphism 
class Dog : Animal 
 {	 
	 public Dog() { 
	Console.WriteLine("Dog constructor"); 
	} 
	 public override void Talk() 
	{ 
	Console.WriteLine("Dog talk"); 
	} 
 }	 
Tính đa hình - Polymorphism 
class Test 
 {	 
 static void Main( string [] args) 
	{	 
	Animal objA = new Animal();	 
	Dog objD = new Dog(); 
	 objA = objD ; 
	 objA.Talk(); 
	} 
 }	 
Lớp trừu tượng – Abstract Class 
Không được tạo đối tượng. 
Có thể định nghĩa các phương thức. 
Có thể mở rộng từ lớp dẫn xuất. 
Dùng để làm lớp cơ sở. 
Có thể thực thi interface 
Lớp trừu tượng – Abstract Class 
 abstract class Shape 
	{ 
	// Khai cac field	 
	 protected float m_Height = 5; 
	 protected float m_Width = 10;	 
	//Khai bao cac method 
	 public abstract void CalculateArea(); 
	 public abstract void CalculateCircumference(); 
	 public void PrintHeight(){ 
	Console.WriteLine("Height = {0}",m_Height); 
	} 
	 public void PrintWidth()	{ 
	Console.WriteLine("Width = {0}",m_Width); 
	} 
	} 
Lớp trừu tượng – Abstract Class 
 class Rectangle: Shape 
	{ 
	 public Rectangle( { 
	m_Height = 20; 
	m_Width = 30; 
	} 
	 public override void CalculateArea() {	 
	 Console.WriteLine("Area : {0}",m_Height * m_Width ); 
	} 
	 public override void CalculateCircumference() { 
	Console.WriteLine("Circumference = {0}",(m_Height+m_Width)*2); 
	} 
} 
Lớp trừu tượng – Abstract Class 
 class Test 
	{ 
	 static void Main( string [] args) 
	{ 
	 	Rectangle objRec = new Rectangle(); 
	objRec.CalculateArea(); 
	objRec.CalculateCircumference(); 	 
	 } 
 } 
Giao diện – Interface 
Không được tạo đối tượng. 
Không thể định nghĩa các phương thức. 
Lớp thực thi interface phải thực thi tất cả các phương thức của interface . 
Interface có thể được kế thừa các interface khác. 
Giao diện – Interface 
interface ITest 
	{ 
	 void Print(); 
	}	 
class Base:ITest 
	{ 
	 public void Print() 
	{ 
	 Console.WriteLine("Print method called");	 
	}	 
 } 
Giao diện – Interface 
static void Main(string[] args) 
{	 
 Base obj = new Base(); 
 obj.Print(); 
	 //Gọi phương thức Print() bằng interface ITest 
	 ITest ib = (ITest)obj ; 
	 	ib.Print(); 
	 //Gọi phuong thức Print() bằng cách ép kiểu Interface ITest về lớp Base 
	 Base ojB = (Base)ib; 
	ojB.Print(); 
} 

File đính kèm:

  • pptbai_giang_lap_trinh_tren_windows_voi_microsoft_net_phan_5_ho.ppt