tailieunhanh - Giáo trình hướng dẫn truy cập phương thức gán đối tượng cho một giao diện đối lập trừu tượng p4

Nếu đưa ra một kiểu Document, và ta cũng không biết là lớp này có hỗ trợ giao diện IStorable hay ICompressible hoặc cả hai. Ta có thể có đoạn chương trình sau: Document doc = new Document(“Test Document”); IStorable isDoc = (IStorable) doc; (); ICompressible icDoc = (ICompressible) doc; (); | Ngôn Ngữ Lập Trình C void Compress void Decompress Nếu đưa ra một kiểu Document và ta cũng không biết là lớp này có hỗ trợ giao diện IStorable hay ICompressible hoặc cả hai. Ta có thể có đoạn chương trình sau Document doc new Document Test Document IStorable isDoc IStorable doc ICompressible icDoc ICompressible doc Nếu Document chỉ thực thi giao diện IStorable public class Document IStorable phép gán cho ICompressible vẫn được biên dịch bởi vì ICompressible là một giao diện hợp lệ. Tuy nhiên do phép gán không hợp lệ nên khi chương trình chạy thì sẽ tạo ra một ngoại lệ exception A exception of type was thrown. Phần ngoại lệ sẽ được trình bày trong Chương 11. Toán tử is Chúng ta muốn kiểm tra một đối tượng xem nó có hỗ trợ giao diện để sau đó thực hiện các phương thức tương ứng. Trong ngôn ngữ C có hai cách để thực hiện điều này. Phương pháp đầu tiên là sử dụng toán tử is. Cú pháp của toán tử is là biểu thức is kiểu dữ liệu Toán tử is trả về giá trị true nếu biểu thức thường là kiểu tham chiếu có thể được gán an toàn đến kiểu dữ liệu cần kiểm tra mà không phát sinh ra bất cứ ngoại lệ nào. Ví dụ minh họa việc sử dụng toán tử is để kiểm tra Document có thực thi giao diện IStorable hay ICompressible. 5 Ví dụ Sử dụng toán tử is. using System interface IStorable void Read void Write object obj int Status get set giao diện mới Thực Thi Giao Diện 188 Ngôn Ngữ Lập Trình C interface ICompressible void Compress void Decompress Document thực thi IStorable public class Document IStorable public Document string s Creating document with 0 s IStorable public void Read Implementing the Read Method for IStorable public void Write object o Implementing the Write Method for IStorable public int Status get return status set status value bien thanh vien luu gia tri cua thuoc tinh Status private int status 0 public class Tester 189 Thực .

TỪ KHÓA LIÊN QUAN