Задача на наследование C#

198
22 декабря 2019, 01:20

Создать такую иерархию классов A, B и C, чтобы код ниже компилировался и выводил текст "ABC"

static void Main(string[] args)  
{  
    var b = new B(); 
    var c = new C();  
    ((A)c).PrintMessage();  
    ((A)b).PrintMessage();  
    c.PrintMessage();  
}

Подскажите как правильно построить наследование, а то постоянно ловлю

System.InvalidCastException

Answer 1

https://ideone.com/cUNAkG

class A      { public        virtual  void PrintMessage() { Console.Write("A"); } }
class B : A  { public sealed override void PrintMessage() { Console.Write("B"); } }
class C : A  { public new             void PrintMessage() { Console.Write("C"); } }
Answer 2
class B : A { ... }
class C : A { ... }

В декларациях методов PrintMessage в классах A, B и C Вам нужно будет использовать ключевые слова virtual, override и new соответственно.

READ ALSO
Word. Как получить Заголовки С#

Word. Как получить Заголовки С#

Использую MicrosoftOffice

208
Интерфейс с атрибутом

Интерфейс с атрибутом

Можно ли использовать атрибуты с интерфейсами, так что бы реализующий класс имел метод с таким же атрибутом ?

177
Как в mesh renderer установить текстуру

Как в mesh renderer установить текстуру

Необходимо в Компонент Mesh Renderer установить текстуру из папкиНо ничего не выходит

196
динамическое создание элементов

динамическое создание элементов

поставил себе monodevelop, и, после visual studio с windows forms, gtk для меня как китайская грамота в каких-то случаях)

205