static void Main(string[] args) { CellPhone cp = new CellPhone("*****@*****.**", "000-000-1234"); // 携帯電話クラスで、電話とメールを実行 cp.Call("001-001-1234"); cp.SendMail("*****@*****.**"); // 電話インターフェ-スでインスタンスにアクセス // あるクラス(CellPoneクラス)を、ベースクラスやインターフェース(IPhone)の型に代入するときはキャストを利用 // キャスト(IPhone)をつけて代入することで、CellPhoneクラスを架空のIPhoneクラスとして振舞うことができる IPhone phone = (IPhone)cp; phone.Call("002-002-1234"); // メールインターフェースでインスタンスにアクセス IEmail mail = (IEmail)cp; mail.SendMail("*****@*****.**"); }
static void Main(string[] args) { CellPhone cp = new CellPhone("*****@*****.**", "090-1234-5678"); //携帯電話クラスで電話とメールを送る cp.Call("011-123-4567"); cp.SendMail("*****@*****.**"); //電話インターフェースでインスタンスにアクセス IPhone phone = (IPhone)cp; phone.Call("011-987-6543"); //電話をかける //メールの送信メソッドは利用できない //phone.SendMail("*****@*****.**"); //メールインターフェースでインスタンスにアクセス IEmail mail = (IEmail)cp; mail.SendMail("*****@*****.**"); //メールを出す //mailインターフェースでは電話の機能を利用できない //mail.Call("011-222-3333"); }