Модификатор new явно скрывает члены базового класса, которые имею такое же имя, как у члена производного класса.
Не желательно создавать имена членов в производном классе, которые соответствуют именам в базовом классе.
Не желательно создавать имена членов в производном классе, которые соответствуют именам в базовом классе.
Main.cs
using
System;
//базовый класс
class
Base {
-
//вложенный класс
-
public
class
One {
-
int
val;
-
public
One(
int
arg) {
-
val = arg;
-
}
-
public
int
getVal() {
-
return
val;
-
}
-
}
}
//производный класс
class
Car : Base {
-
//вложенный класс
-
//модификатор new явно скрывает класс с таким же именем в базовом классе
-
new
public
class
One {
-
int
val;
-
public
One(
int
arg) {
-
val = arg;
-
}
-
public
int
getVal() {
-
return
val;
-
}
-
}
}
class
Program {
-
public
static
int
Main() {
-
Base.One BO =
new
Base.One(10);
-
Console.WriteLine(BO.getVal());
-
Car.One CO =
new
Car.One(20);
-
Console.WriteLine(CO.getVal());
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
//базовый класс
class
Base {
-
//вложенный класс
-
public
class
One {
-
int
val;
-
public
One(
int
arg) {
-
val = arg;
-
}
-
public
int
getVal() {
-
return
val;
-
}
-
}
}
//производный класс
class
Car : Base {
-
//вложенный класс
-
//модификатор new явно скрывает класс с таким же именем в базовом классе
-
new
public
class
One {
-
int
val;
-
public
One(
int
arg) {
-
val = arg;
-
}
-
public
int
getVal() {
-
return
val;
-
}
-
}
}
class
Program {
-
public
static
int
Main() {
-
Base.One BO =
new
Base.One(10);
-
Console.WriteLine(BO.getVal());
-
Car.One CO =
new
Car.One(20);
-
Console.WriteLine(CO.getVal());
-
Console.ReadKey();
-
return
0;
-
}
}
10
20
20