Какие ошибки допущены в классе? (2 верных варианта)
private class Money
{
public virtual abstract void Transfer();
public abstract Money Exchange();
public abstract decimal Value
{
get;
set;
}
}
1. Нельзя использовать private для классов
2. Свойство Value не может быть помечено abstract
3. В объявлении класса пропущено ключевое слово abstract
4. Метод Transfer() не может быть одновременно помечен как виртуальный и абстрактный
Что-то у меня получается 3 правильных — 1, 3, 4. Видимо, это ошибка в тесте или я чего-то не понимаю?
Здравствуйте, XJess, Вы писали:
XJ>1. Нельзя использовать private для классов XJ>2. Свойство Value не может быть помечено abstract XJ>3. В объявлении класса пропущено ключевое слово abstract XJ>4. Метод Transfer() не может быть одновременно помечен как виртуальный и абстрактный
XJ>Что-то у меня получается 3 правильных — 1, 3, 4. Видимо, это ошибка в тесте или я чего-то не понимаю?
Первое справедливо для членов пространства имён. Если класс объявлен внутри другого, то private для него допустимо. Поэтому — 3 и 4.
Здравствуйте, Jolly Roger, Вы писали:
XJ>>Что-то у меня получается 3 правильных — 1, 3, 4. Видимо, это ошибка в тесте или я чего-то не понимаю?
JR>Первое справедливо для членов пространства имён. Если класс объявлен внутри другого, то private для него допустимо. Поэтому — 3 и 4.
Короче, вопрос все равно не до конца корректный — ведь не сказано, куда этот класс помещен...
Здравствуйте, XJess, Вы писали:
XJ>Здравствуйте, Jolly Roger, Вы писали:
XJ>>>Что-то у меня получается 3 правильных — 1, 3, 4. Видимо, это ошибка в тесте или я чего-то не понимаю?
JR>>Первое справедливо для членов пространства имён. Если класс объявлен внутри другого, то private для него допустимо. Поэтому — 3 и 4.
XJ>Короче, вопрос все равно не до конца корректный — ведь не сказано, куда этот класс помещен...
какая разница куда помещен?
1. private для классов писать можно. т.к. определение класс может быть помещено внутри другого класса
2. свойства могут быть помечены как абстрактные и определяться в потомках
3. если класс содержит объявление абстрактных методов, то он должен быть помечен как абстрактный
4. виртуальный метод — содержит тело и может быть переопределен потомками. абстрактный же, тела не содержит и обязан быть определен потомком.