2010-11-26 3 views
5

я пытался делать что-то вроде этого:Может ли класс реализовать два интерфейса одновременно?

class Student: IPersonalDetails: IOtherDetails 
{ 
     //Code 
} 

Это дает ошибку. Почему я не могу реализовать два интерфейса?

+2

отделить имена интерфейсов с a запятая (,) – Ozan 2010-11-26 13:04:21

+9

Мне всегда плохо, когда тривиальные вопросы, подобные этим, получают upvotes и законные вопросы компьютерной науки, не получают того, что он заслуживает. ... :( – 2010-11-26 13:15:15

ответ

19

Используйте запятую между типами интерфейсов, например.

class Student: IPersonalDetails, IOtherDetails 
{ 
     //Code 
} 
9

Изменить его

class Student: IPersonalDetails, IOtherDetails 
{ 
    //Code 
} 
5

Да, может, иметь глубокий взгляд на свой синтаксис.

1

Да! Вы определенно можете. Вы даже можете реализовать больше, чем 2. Я не уверен, есть ли ограничение на количество интерфейсов, которые вы можете реализовать за раз.

0

Да, класс может определенно реализовать несколько интерфейсов. В конце концов, это целая точка интерфейсов.

Посмотрите сообщение об ошибке, которое вы получаете. Это не, говорящий вам, что класс не может реализовать более одного интерфейса. Он говорит вам, что имеет синтаксическую ошибку.

-1

Да, или, как это, которые, конечно же цели совершенно другой дизайн цель, и вы могли бы сказать, что на самом деле это все еще только один интерфейс из-за полиморфный характер наследования, но все же:

public interface IEntity 
{ 
    void DoTask(); 
} 

public interface IExtendedTaskEntity : IEntity 
{ 
    void DoExtendedTask(); 
} 

public class ConcreteEntity : IExtendedTaskEntity 
{ 

    #region IExtendedTaskEntity Members 

    public void DoExtendedTask() 
    { 
     throw new NotImplementedException(); 
    } 

    #endregion 

    #region IEntity Members 

    public void DoTask() 
    { 
     throw new NotImplementedException(); 
    } 

    #endregion 
} 
Смежные вопросы