Bài giảng Lập trình trên Windows với Microsoft® .NET - Kế thừa trong C# - Hồ Hoàn Kiếm

ppt 20 trang huongle 3580
Bạn đang xem tài liệu "Bài giảng Lập trình trên Windows với Microsoft® .NET - Kế thừa trong C# - Hồ Hoàn Kiếm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_tren_windows_voi_microsoft_net_ke_thua_t.ppt

Nội dung text: Bài giảng Lập trình trên Windows với Microsoft® .NET - Kế thừa trong C# - Hồ Hoàn Kiếm

  1. Lập trỡnh trờn Windows với Microsoftđ .NET Giảng viờn : Hồ Hoàn Kiếm
  2. Kế thừa trong C# n Cho phộp khai bỏo 1 lớp mới được dẫn xuất từ 1 lớp đó cú. n Sử dụng lại cỏc đọan mó đó viết . n Hổ trợ đơn thừa kế. n Khụng cho phộp đa thừa kế. n Cho phộp thực thi nhiều interface
  3. 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; } }
  4. Kế thừa trong C# class MicrosoftSoftware : Software { public MicrosoftSoftware() { Console.WriteLine(m_x); } }
  5. 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); } }
  6. 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(); }
  7. Kế thừa trong C# n 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 .
  8. Overriding Method class Animal { public Animal() { Console.WriteLine("Animal constructor"); } public void Talk() { Console.WriteLine("Animal talk"); } }
  9. Overriding Method class Dog : Animal { public Dog() { Console.WriteLine("Dog constructor"); } public new void Talk() { Console.WriteLine("Dog talk"); } }
  10. Overriding Method class Test { static void Main(string[] args) { Animal a1 = new Animal(); a1.Talk(); Dog d1 = new Dog(); d1.Talk(); } }
  11. Tớnh đa hỡnh - Polymorphism class Animal { public Animal() { Console.WriteLine("Animal constructor"); } public virtual void Talk() { Console.WriteLine("Animal talk"); } }
  12. Tớnh đa hỡnh - Polymorphism class Dog : Animal { public Dog() { Console.WriteLine("Dog constructor"); } public override void Talk() { Console.WriteLine("Dog talk"); } }
  13. 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(); } }
  14. Lớp trừu tượng – Abstract Class n Khụng được tạo đối tượng. n Cú thể định nghĩa cỏc phương thức. n Cú thể mở rộng từ lớp dẫn xuất. n Dựng để làm lớp cơ sở. n Cú thể thực thi interface
  15. 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); } }
  16. 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); } }
  17. Lớp trừu tượng – Abstract Class class Test { static void Main(string[] args) { Rectangle objRec = new Rectangle(); objRec.CalculateArea(); objRec.CalculateCircumference(); } }
  18. Giao diện – Interface n Khụng được tạo đối tượng. n Khụng thể định nghĩa cỏc phương thức. n Lớp thực thi interface phải thực thi tất cả cỏc phương thức của interface. n Interface cú thể được kế thừa cỏc interface khỏc.
  19. Giao diện – Interface interface ITest { void Print(); } class Base:ITest { public void Print() { Console.WriteLine("Print method called"); } }
  20. 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(); }