Модификатор new явно скрывает члены базового класса, которые имею такое же имя, как у члена производного класса.
Не желательно создавать имена членов в производном классе, которые соответствуют именам в базовом классе.
Не желательно создавать имена членов в производном классе, которые соответствуют именам в базовом классе.
Main.cs
usingSystem;//базовый классclassBase {-
//вложенный класс -
publicclassOne { -
intval; -
publicOne(intarg) { -
val = arg; -
} -
publicintgetVal() { -
returnval; -
} -
} }//производный классclassCar : Base {-
//вложенный класс -
//модификатор new явно скрывает класс с таким же именем в базовом классе -
newpublicclassOne { -
intval; -
publicOne(intarg) { -
val = arg; -
} -
publicintgetVal() { -
returnval; -
} -
} }classProgram {-
publicstaticintMain() { -
Base.One BO =newBase.One(10); -
Console.WriteLine(BO.getVal()); -
Car.One CO =newCar.One(20); -
Console.WriteLine(CO.getVal()); -
Console.ReadKey(); -
return0; -
} }
usingSystem;//базовый классclassBase {-
//вложенный класс -
publicclassOne { -
intval; -
publicOne(intarg) { -
val = arg; -
} -
publicintgetVal() { -
returnval; -
} -
} }//производный классclassCar : Base {-
//вложенный класс -
//модификатор new явно скрывает класс с таким же именем в базовом классе -
newpublicclassOne { -
intval; -
publicOne(intarg) { -
val = arg; -
} -
publicintgetVal() { -
returnval; -
} -
} }classProgram {-
publicstaticintMain() { -
Base.One BO =newBase.One(10); -
Console.WriteLine(BO.getVal()); -
Car.One CO =newCar.One(20); -
Console.WriteLine(CO.getVal()); -
Console.ReadKey(); -
return0; -
} }
10
20
20