5. Интерфейсы Интерфейсные ссылки: interface INumber { void SetStart(int x); intGetNext(); void ResetNumber(); } class First : INumber { int start; intval; public First() { start = 0; val = 0; } public void SetStart(int x) { start=x; val=x; } public intGetNext() { val++; return val; } public void ResetNumber() { val = 0; } } class Second : INumber { int start; intval; public Second() { start = 0; val = 0; } public void SetStart(int x) { start = x; val = x; } public intGetNext() { val += 2; return val; } public void ResetNumber() { val = 0; } } class Program { static void Main(string[] args) { First first = new First(); Second second = new Second(); INumber number; for (int i = 0; i < 5; i++) { number = first; Console.WriteLine("First "+number.GetNext()); number = second; Console.WriteLine("Second "+number.GetNext()); } Console.ReadLine(); } } … classимя_класса : имя_интерфейса { II тело класса } … Имя_интерфейса идентификатор; …
6. Интерфейсы Интерфейсные свойства: interface User { string Login { get; set; } string Password { get; set; } } class mySiteUser:User { string login; string password; public mySiteUser(string s,stringss) { login = s; password = ss; } public string Login { get { return login; } set { if (value.Length > 3) login = value; else Console.WriteLine("Invalid string"); } } public string Password { get { return password; } set { if (value.Length > 5) password = value; else Console.WriteLine("Invalid string"); } } } class facebookUser:User { string login; string password; public facebookUser(string s,stringss) { login = s; password = ss; } public string Login { get { return login; } set { if (value.Length > 5) login = value; else Console.WriteLine("Invalid string"); } } public string Password { get { return password; } set { if (value.Length > 7) password = value; else Console.WriteLine("Invalid string"); } } } class Program { static void Main(string[] args) { mySiteUser my = new mySiteUser("dragonzzz","hahaha"); Console.WriteLine(my.Login+" "+my.Password); my.Login = "asd"; Console.WriteLine(my.Login + " " + my.Password); my.Login = "dragonzzzzzzzzzzzzzzzzzzz"; Console.WriteLine(my.Login + " " + my.Password); Console.WriteLine(); facebookUser his = new facebookUser("markus","zuckerberg"); Console.WriteLine(his.Login + " " + his.Password); his.Password = "zucker"; Console.WriteLine(his.Login + " " + his.Password); his.Password = "markuzzzz"; Console.WriteLine(his.Login + " " + his.Password); Console.ReadLine(); } } тип имя{ get; set; }
8. Интерфейсы Наследование интерфейсов !!!Для реализации интерфейса-наследника необходимо релизовать все его интерфейсы-предки interface A { void Meth1(); } interface B : A { void Meth2(); } interface C : B { void Meth3(); } class MyClass : C { public void Meth1() { Console.WriteLine("Meth1"); } public void Meth2() { Console.WriteLine("Meth2"); } public void Meth3() { Console.WriteLine("Meth3"); } } class Program { static void Main(string[] args) { MyClass my = new MyClass(); my.Meth1(); my.Meth2(); my.Meth3(); Console.ReadLine(); } }
9. Интерфейсы Сокрытие имен при наследовании class MyClass : IMylF { intIMylF.MyMeth(int x) { return x / 3; } }