ABSTRACT VÀ INTERFACE KHÁC NHAU
Số trang: 3
Loại file: pdf
Dung lượng: 126.71 KB
Lượt xem: 19
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Cả Abstract class và Interface đều là các lớp định nghĩa sẵn các method để các lớp khác kế thừa.Abstract class : các method có thể chỉ khai báo hoặc có thể định nghĩa method đó – quy định cách thực thi của method để các method lớp dẫn xuất sẽ mặc định thực thi như vậy
Nội dung trích xuất từ tài liệu:
ABSTRACT VÀ INTERFACE KHÁC NHAU C# Cơ B nWWW.CSHARPVN.COM ABSTRACT VÀ INTERFACE KHÁC NHAU?ð i v i l p trình C# hay l p trình hư ng ñ i tư ng nói chung, v n ñ k th a s ñem l i nhi u phi ntoái n u b n chưa n m rõ v v n ñ này. V y thì s khác bi t gi a l p abstract và interface chnào? ñây, mình xin ñư c phép nói qua v chúng.Thì m t l p tr u tư ng thì không có th hi n nghĩa là ta không th kh i t o nó b ng toán t new, vàm t phương th c trong nó là abstract thì ch ñư c ñưa ra ñ nh nghĩa (khai báo) mà không ñư c th cthi và nó s ñư c overriden l i trong các l p con k th a. Và trong l p mà t n t i phương th cabstract thì l p ñó cũng ñư c ñ nh nghĩa abstract.ð i v i giao di n thì khác hoàn toàn v i l p tr u tư ng, nó ñ nh nghĩa m t cách c ng nh c cácphương th c và thu c tính trong chúng nghĩa là không cho phép ta th c thi b t kỳ m t ño n mã nào.Và t t c các thành viên trong nó ñ u ñư c ñ nh nghĩa công khai (public). M t cách t ng quan vgiao di n: Giao di n là ràng bu c, giao ư c ñ m b o cho các l p hay các c u trúc s th c hi n m tñi u gì ñó. Khi m t l p th c thi m t giao di n, thì l p này báo cho các thành ph n client bi t r ng l pnày có h tr các phương th c, thu c tính, s ki n và các ch m c khai báo trong giao di n.M t s lưu ý khi s d ng abstract hay interface 1. M t class ch có th k th a t m t abstract class, nhưng có th k th a nhi u interface. 2. Trong Interface ch có th khai báo các fields, methods, mà không ñư c hi n th c nó. Còn ñ i v i abstract thì dùng các bi n, hi n th c cách methods. 3. Các fields, methods trong interace ñ u là public và b t bu c các class k th a ph i cài ñ t nó (abstract). Trong abstract class thì có các fields, methods có th là private, internal, public, protected và có th là abstract ho c non-abstract. 4. Interface dùng ñ gom các hành ñ ng c n ñư c hi n th c , các kh năng c a m t ñ i tư ng, còn abstract class cho các l p th a k cùng 1 lo i, tính ch t hay tr ng thái. 5. Abstract class có t c ñ th c thi nhanh hơn interface. 6. Thêm 1 tính năng m i vào interface s phá v toàn b các l p hi n th c, còn abstract thì không.Ví d v interface, các thành viên c a interface ph i ñư c th c thi trong các l p mà k th a t nó public interface IPlayer { string Name { get; set; } Player Actor { get; set;Biên t p Ngu n: Vubka C# Cơ B nWWW.CSHARPVN.COM } Bitmap Image { get; set; } }Ví d dư i đây khai báo m t l p abstract có các thành viên trong nó là abstract và non-abstract, và đư c th c thi trong l p con là Facultyabstract class Employee { protected string m_str_department; protected double m_db_salary; protected int m_i_dateHired; public string M_Str_Department { get { return m_str_department; } set { m_str_department = value; } } public double M_DB_Salary { get { return m_db_salary; } set { m_db_salary = value; } } public int M_I_DateHired { get { return m_i_dateHired; } set { m_i_dateHired = value; } } public override string ToString() { return Employee: + m_str_name + \nEmail: + m_str_email; } public abstract double CalculateBonus(); public abstract int CalculateVacation(); } class Faculty : Employee { string m_str_rank; double m_db_hours; public override double CalculateBonus() {Biên t p Ngu n: Vubka C# Cơ B nWWW.CSHARPVN.COM return 1000 + 0.05 * m_db_salary; } public override int CalculateVacation() { if (m_i_dateHired > 3) { if (m_str_rank == Senior Lecture) return 6; return 5; } if (m_str_rank == Senior Lecture) return 5; return 4; } }Biên t p Ngu n: Vubka
Nội dung trích xuất từ tài liệu:
ABSTRACT VÀ INTERFACE KHÁC NHAU C# Cơ B nWWW.CSHARPVN.COM ABSTRACT VÀ INTERFACE KHÁC NHAU?ð i v i l p trình C# hay l p trình hư ng ñ i tư ng nói chung, v n ñ k th a s ñem l i nhi u phi ntoái n u b n chưa n m rõ v v n ñ này. V y thì s khác bi t gi a l p abstract và interface chnào? ñây, mình xin ñư c phép nói qua v chúng.Thì m t l p tr u tư ng thì không có th hi n nghĩa là ta không th kh i t o nó b ng toán t new, vàm t phương th c trong nó là abstract thì ch ñư c ñưa ra ñ nh nghĩa (khai báo) mà không ñư c th cthi và nó s ñư c overriden l i trong các l p con k th a. Và trong l p mà t n t i phương th cabstract thì l p ñó cũng ñư c ñ nh nghĩa abstract.ð i v i giao di n thì khác hoàn toàn v i l p tr u tư ng, nó ñ nh nghĩa m t cách c ng nh c cácphương th c và thu c tính trong chúng nghĩa là không cho phép ta th c thi b t kỳ m t ño n mã nào.Và t t c các thành viên trong nó ñ u ñư c ñ nh nghĩa công khai (public). M t cách t ng quan vgiao di n: Giao di n là ràng bu c, giao ư c ñ m b o cho các l p hay các c u trúc s th c hi n m tñi u gì ñó. Khi m t l p th c thi m t giao di n, thì l p này báo cho các thành ph n client bi t r ng l pnày có h tr các phương th c, thu c tính, s ki n và các ch m c khai báo trong giao di n.M t s lưu ý khi s d ng abstract hay interface 1. M t class ch có th k th a t m t abstract class, nhưng có th k th a nhi u interface. 2. Trong Interface ch có th khai báo các fields, methods, mà không ñư c hi n th c nó. Còn ñ i v i abstract thì dùng các bi n, hi n th c cách methods. 3. Các fields, methods trong interace ñ u là public và b t bu c các class k th a ph i cài ñ t nó (abstract). Trong abstract class thì có các fields, methods có th là private, internal, public, protected và có th là abstract ho c non-abstract. 4. Interface dùng ñ gom các hành ñ ng c n ñư c hi n th c , các kh năng c a m t ñ i tư ng, còn abstract class cho các l p th a k cùng 1 lo i, tính ch t hay tr ng thái. 5. Abstract class có t c ñ th c thi nhanh hơn interface. 6. Thêm 1 tính năng m i vào interface s phá v toàn b các l p hi n th c, còn abstract thì không.Ví d v interface, các thành viên c a interface ph i ñư c th c thi trong các l p mà k th a t nó public interface IPlayer { string Name { get; set; } Player Actor { get; set;Biên t p Ngu n: Vubka C# Cơ B nWWW.CSHARPVN.COM } Bitmap Image { get; set; } }Ví d dư i đây khai báo m t l p abstract có các thành viên trong nó là abstract và non-abstract, và đư c th c thi trong l p con là Facultyabstract class Employee { protected string m_str_department; protected double m_db_salary; protected int m_i_dateHired; public string M_Str_Department { get { return m_str_department; } set { m_str_department = value; } } public double M_DB_Salary { get { return m_db_salary; } set { m_db_salary = value; } } public int M_I_DateHired { get { return m_i_dateHired; } set { m_i_dateHired = value; } } public override string ToString() { return Employee: + m_str_name + \nEmail: + m_str_email; } public abstract double CalculateBonus(); public abstract int CalculateVacation(); } class Faculty : Employee { string m_str_rank; double m_db_hours; public override double CalculateBonus() {Biên t p Ngu n: Vubka C# Cơ B nWWW.CSHARPVN.COM return 1000 + 0.05 * m_db_salary; } public override int CalculateVacation() { if (m_i_dateHired > 3) { if (m_str_rank == Senior Lecture) return 6; return 5; } if (m_str_rank == Senior Lecture) return 5; return 4; } }Biên t p Ngu n: Vubka
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ lập trình C# học lập trình C# cấu trúc lập trình C tài liệu về lập trình C giáo trình lập trình CGợi ý tài liệu liên quan:
-
Tóm tắt Đồ án tốt nghiệp Công nghệ thông tin: Lập trình game với ứng dụng Unity
16 trang 465 0 0 -
Tóm tắt Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng game 2D trên Unity
21 trang 339 1 0 -
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 226 0 0 -
15 trang 196 0 0
-
Khóa luận tốt nghiệp: Xây dựng website dạy ngôn ngữ lập trình C# dành cho người mới bắt đầu
113 trang 62 0 0 -
20 trang 60 0 0
-
Bài giảng Cơ sở lập trình Csharp: Bài 1 - Làm quen với ngôn ngữ lập trình C#
36 trang 48 0 0 -
Lập trình C trên Windows (phần 1)
10 trang 46 0 0 -
Luận văn tốt nghiệp Công nghệ thông tin: Quản lý hồ sơ Đảng viên trường Đại học Võ Trường Toản
72 trang 39 0 0 -
16 trang 36 0 0