Основы программирования на языке Java. Сухов С.А. - 26 стр.

UptoLike

Составители: 

29
3.10. Ссылка super
В примере с классом Point3D частично повторялся код, уже имевшийся в
суперклассе. Вспомните, как во втором конструкторе мы использовали this для
вызова первого конструктора того же класса. Аналогичным образом ключевое
слово super позволяет обратиться непосредственно к конструктору
суперкласса.
class Point3D extends Point {
int z;
Point3D(int x, int у, int z) {
super(x, y); // Здесь мы вызываем конструктор суперкласса
this.z=z;
public static void main(String args[]) {
Point3D p = new Point3D(10, 20, 30);
System.out.println( " x = " + p.x + " y = " + p.y + " z = " + p.z);
}
}
Вот результат работы этой программы:
x = 10 у = 20 z = 30
3.11. Замещение методов
Новый подкласс Point3D класса Point наследует реализацию метода
distance своего суперкласса (пример PointDist.java). Проблема заключается в
том, что в классе Point уже определена версия метода distance(int х, int у),
которая возвращает обычное расстояние между точками на плоскости. Мы
должны заместить (override) это определение метода
новым, пригодным для
случая трехмерного пространства. В следующем примере проиллюстрировано и
совмещение (overloading), и замещение (overriding) метода distance.
class Point {
int х, у;
Point(int х, int у) {
this.x = х;
this.у = у;
}
double distance(int х, int у) {
int dx = this.x - х;
int dy = this.у - у:
return Math,sqrt(dx*dx + dy*dy);
}