ПОСМОТРЕТЬ РЕДАКТИРОВАТЬ ПОЛОВИНУ ВНИЗ ПОЧТЫ.
Я новичок в Java, и все формальные декларации о наследстве меня немного смущают.
У меня есть такой интерфейс:
public interface A{
public void one();
public void two();
}
и тогда у меня есть два класса, вот так:
public class B implements A{
private int num;
public void one(){
...
}
public void two(){
...
}
public B(){
this.num = 1;
}
}
public class C extends B{
public C(){
super();
}
}
тогда у меня есть класс драйвера, такой:
public class Driver{
public static void main(String [] args){
A a_array[] = new A[5];
for(int i=0; i<6; i++){
if(i%2==0){
a_array[i] = new B();
}
else{
a_array[i] = new C();
}
}
}
}
По сути, учитывая массив интерфейсов, я пытаюсь реализовать различные классы, реализующие этот интерфейс.
Теперь я предполагаю, что в этой реализации есть несколько ошибок, но я не могу их обнаружить. Прежде всего, я получаю сообщение об ошибке «B () не является абстрактным и не реализует метод one ()».
EDIT:
хорошо, давайте попробуем это ...
интерфейс:
public interface Shape{
public double calcAread();
public double calcPerimeter();
}
реализующий класс:
public class Rectangle implements Shape{
private double length;
private double width;
public double calcArea(){
return this.length*this.width;
}
public double calcPerimeter(){
return (this.length*2)+(this.width*2);
}
public Rectangle(double length, double width){
this.length=length;
this.width=width;
}
// then some other methods including the set methods
}
расширяющий класс:
public class Square extends Rectangle{
public Square(){
super();
}
public Square(double sideLength){
super.setLength(sideLength);
super.setWidth(sideLength);
}
// some more methods
}
Я не могу думать о гораздо большем, что было бы полезно, кроме упоминания о том, что существуют другие наследующие и расширяющие классы, но они следуют точно так же, как и синтаксис.
Нет ошибок при компиляции фигуры, но «Rectangle не является абстрактным и не переопределяет абстрактный метод calcAread () in Shape» Ошибка, когда я компилирую класс Rectangle.
Надеюсь, это будет более поучительно.
Спасибо