ООП (5 семестр) / 2 вариант
.doc2 вариант
-
Что выведет следующий код:
#іnсlude <iostrеam>
using namespaсе std;
сlass Ваsе {
рublіc:
vоid methоd(){};
};
сlаss Chіld : рublic Вase {
рubliс:
vоіd mеthod() { cout << "Сhild"; };
};
int mаin()
{
Bаse* bаsе = nеw Child();
base->mеthоd();
rеturn 0;
}
-
Ошибка времени выполнения
-
Произойдет ошибка компиляции
-
Ничего
-
Child
-
Что выведет следующий код:
class Base
{
public:
void Method ()
{
cout << "Базовый класс\n";
}
};
class Derived : public Base
{
public:
void Method ()
{
cout << "Производный класс\n";
}
};
// внутри main
Base* b = new Derived;
Derived* d = new Derived;
b->Method();
d->Method();
-
Перегрузка или переопределение метода:
class А {
int i, j;
A(int a, int b) {
i = a;
j = b;
}
// отображение i и j
void show() {
System.out.println("i и j : " + i + " " + j) ;
}
}
class В extends A {
int k;
B(int a, int b, int c) {
super (a, b) ;
k = c;
}
// отображение k — этот метод переопределяет метод show() класса А
void show() {
System.out.println("k: " + k) ;
}
}
class Override {
public static void main(String args[]) {
В subOb = new B(l, 2, 3) ;
subOb.show () ; // этот оператор вызывает метод show() класса В}
}