THỰC THI GIAO DIỆN phần cuối

Chia sẻ: Tuan Bui Nghia | Ngày: | Loại File: PDF | Số trang:7

0
44
lượt xem
7
download

THỰC THI GIAO DIỆN phần cuối

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: THỰC THI GIAO DIỆN phần cuối

  1. Câu hỏi và trả lời Câuhỏi 1: So sánh giữa lớp và giao diện? Trả lời 1: Giao diện khác với lớp ở một số điểm sau: giao diện không cung cấp bất cứ sự thực thi mã nguồn nào cả. Điều này sẽ được thực hiện tại các lớp thực thi giao diện. Một giao diện đưa ra chỉ để nói rằng có cung cấp một số sự xác nhận hướng dẫn cho những điều gì đó xảy ra và không đi vào chi tiết. Một điều khác nữa là tất cả các thành viên của giao diện được giả sử là public ngầm định. Nếu chúng ta cố thay đổi thuộc tính truy cập của thành viên trong giao diện thì sẽ nhận được lỗi. Giao diện chỉ chứa những phương thức, thuộc tính, sự kiện, chỉ mục. Và không chứa dữ liệu thành viên, bộ khởi dựng, và bộ hủy. Chúng cũng không chứa bất cứ thành viên static nào cả. Câuhỏi 2: Sự khác nhau giữa giao diện và lớp trừu tượng? Trả lời 2: Sự khác nhau cơ bản là sự kế thừa. Một lớp có thể kế thừa nhiều giao diện cùng một lúc, nhưng không thể kế thừa nhiều hơn một lớp trừu tượng. Câuhỏi 3: Các lớp thực thi giao diện sẽ phải làm gì? Trảlời 3: Các lớp thực thi giao diện phải cung cấp các phần thực thi chi tiết cho các phương thức, thuộc tính, chỉ mục, sự kiện được khai báo trong giao diện. Câuhỏi 4: Có bao nhiêu cách gọi một phương thức được khai báo trong giao diện? Trảlời 4: Có 4 cách gọi phương thức được khai báo trong giao diện: Thông qua lớp cơ sở tham chiếu đến đối tượng của lớp dẫn xuất Thông qua một giao diện tạo từ lớp cơ sở tham chiếu đến đối tượng dẫn xuất Thông qua một đối tượng dẫn xuất Thông qua giao diện tạo từ đối tượng dẫn xuất Câuhỏi 5: Các thành viên của giao diện có thể có những thuộc tính truy cập nào? Trả lời 5: Mặc định các thành viên của giao diện là public. Vì mục tiêu của giao diện là xây dựng cho các lớp khác sử dụng. Nếu chúng ta thay đổi thuộc tính này như là internal, protected hay private thì sẽ gây ra lỗi. Câuhỏi 6: Chúng ta có thể tạo thể hiện của giao diện một cách trực tiếp được không? Trả lời 6: Không thể tạo thể hiện của giao diện trực tiếp bằng khai báo new được. Chúng ta chỉ có thể tạo thể hiện giao diện thông qua một phép gán với đối tượng thực thi giao diện. Câu hỏi thêm Câuhỏi 1: Toán tử is được dùng làm gì trong giao diện? Câu hỏi 2: Toán tử as có lợi hơn toán tử is về mặt nào khi được sử dụng liện quan đến
  2. giao diện? Câuhỏi 3: Giao diện là kiểu dữ liệu tham chiếu hay kiểu giá trị? Câu hỏi 4: Khi thực thi giao diện với cấu trúc. Thì truy cập các thành viên của giao diện thông qua đối tượng hay thông qua tham chiếu giao diện là tốt nhất? Câuhỏi 5: Số giao diện có thể được kế thừa cho một lớp? Câu hỏi 6: Việc thực thi giao diện tường minh là thực thi như thế nào? Trong trường hợp nào thì cần thực hiện tường minh? Bài tập Bài tập 1: Hãy viết một giao diện khai báo một thuộc tính ID chứa chuỗi giá trị. Viết một lớp Employee thực thi giao diện đó. Bài tập 2: Đọan mã nguồn sau đây có lỗi hãy sử lỗi và hãy cho biết tại sao có lỗi này. Sau khi sửa lỗi hãy viết một lớp Circle thực thi giao diện này? ----------------------------------------------------------------------------- public interface IDimensions {
  3. long width; long height; double Area(); double Circumference(); int Side(); } ----------------------------------------------------------------------------- Bài tập 3: Chương trình sau đây có lỗi hãy sử lỗi, biên dịch và chạy lại chương trình? Giải thích tại sao chương trình có lỗi. ----------------------------------------------------------------------------- using System; interface IPoint { // Property signatures: int x { get; set; } int y { get; set; } } class MyPoint : IPoint { // Fields: private int myX; private int myY; // Constructor: public MyPoint(int x, int y) { myX = x; myY = y; } // Property implementation: public int x
  4. { get { return myX; } set { myX = value; } } public int y { get { return myY; } set { myY = value; } } } class MainClass { private static void PrintPoint(IPoint p) { Console.WriteLine("x={0}, y={1}", p.x, p.y); } public static void Main() { MyPoint p = new MyPoint(2,3); Console.Write("My Point: "); PrintPoint(p); IPoint p2 = new IPoint(); PrintPoint(p2); }
  5. }
  6. ----------------------------------------------------------------------------- Bài tập 4: Xây dựng một giao diện IDisplay có khai báo thuộc tính Name kiểu chuỗi. Hãy viết hai lớp Dog và Cat thực thi giao diện IDisplay, cho biết thuộc tính Name là tên của đối tượng.
Đồng bộ tài khoản