Пытаюсь по-нормальному понять интерфейсы в C# и столкнулся с таким вопросом:
К примеру, я хочу сделать интерфейс, который будет вызываться, если звонит телефон.
Интерфейс:
interface iPhone{
void onIncomingCall(String user);
}
Класс телефона:
public class MyPhone : iPhone{
void onIncomingCall(String user)
{
Console.WriteLine("Нам звонит: "+user);
Console.ReadKey();
}
}
И вот вопрос:
В официальной документации интерфейсов в C#
создаётся сначала объект класса, а затем уже объект интерфейса для КОНКРЕТНОГО класса.
class Test
{
static void Main()
{
SampleClass sc = new SampleClass();
IControl ctrl = (IControl)sc;
ISurface srfc = (ISurface)sc;
// The following lines all call the same method.
sc.Paint();
ctrl.Paint();
srfc.Paint();
}
}
interface IControl
{
void Paint();
}
interface ISurface
{
void Paint();
}
class SampleClass : IControl, ISurface
{
// Both ISurface.Paint and IControl.Paint call this method.
public void Paint()
{
Console.WriteLine("Paint method in SampleClass");
}
}
А если я заранее не знаю, какие у меня вообще классы будут?
Зачем тогда вообще создавать объект интерфейса, а затем вызывать его, если можно просто вызвать метод этого класса через SampleClass.Paint() ?
Как можно вызвать этот метод у всех классов, которые наследуются от этого интерфейса?
IPhoneвместоiPhone. – Aug 27 '18 at 18:40IControl ctrl = (IControl)sc;не создается ... объект интерфейса, а присваивается значение переменной типаIControl. – Aug 27 '18 at 18:42я хочу сделать интерфейс, который будет вызываться, если звонит телефонпоясните подробней, что этот текст означает? – tym32167 Aug 27 '18 at 18:44