Member 13931913 Ответов: 2

Переопределение метода не работает в java


Всем привет,

Я создал ниже показанные классы в java но мой метод переопределения не работает:

package day3.inheritance;

//base class or parent class or super class
public class Box {
	public void calculateArea(int length, int width) {
		System.out.println("Area is: " + (length*width));
	}
}


============================================

package day3.inheritance;

//Inheritance: when a class acquires properties of another class
//subclass
public class NewBox extends Box {
	public void calculateVolume(int length, int width, int height) {
		System.out.println("Volume= " + (length*width*height));
	}
	
	public void calulateArea(int length, int width) {
		System.out.println("Sub area = " + (length / width));
	}
}

==================================================================

package day3.inheritance;

public class TestBox {
	public static void main(String[] args) {
		Box FedEx = new Box();
		FedEx.calculateArea(3, 4);
		
		NewBox ups = new NewBox();
		ups.calculateVolume(4, 5, 6);
		ups.calculateArea(4, 2);
	}

}


Что я уже пробовал:

Выход идет как показано ниже:

12
120
8

так и должно быть
12
120
2

Я практиковался по видеоуроку, в котором он написал тот же код. Его код работал, но не мой, пожалуйста, помогите.

Member 13931913

Никакого Таддеуса. Мое намерение состоит в том, чтобы переопределить метод родительского класса в подклассе NewBox. Выход должен быть subarea = 4/2=2

2 Ответов

Рейтинг:
20

Richard MacCutchan

public void calulateArea(int length, int width) {

Вы неправильно написали имя метода (отсутствует буква "С"). Так и должно быть calculateArea.


Рейтинг:
1

User 7429338

System.out.println("Sub area = " + (length / width));

В NewBox вы определяете область как length/width, но она должна быть length*width.