Возможно ли сделать numberOfLegs: Stati c
Это сделает каждый экземпляр класса, расширяющего Animal, одинаковым numberOfLegs. См .: здесь для объяснения.
public abstract class Animal
{
private static int NUMBER_OF_LEGS = 4;
}
Можно ли сделать numberOfLegs: Обязательно
Да, вам просто нужно сделать в абстрактном классе и инициализировать его в конструкторе.
public abstract class Animal
{
private int numberOfLegs;
public int getNumberOfLegs()
{
return this.numberOfLegs;
}
public Animal(int numberOfLegs)
{
this.numberOfLegs = numberOfLegs;
}
}
public class Zebra extends Animal
{
public Animal(int numberOfLegs)
{
super(numberOfLegs);
}
}
все, что расширяет Animal, должно определять numberOfLegs, или существует какое-то значение по умолчанию
Кроме того, если вам нужно значение по умолчанию для количества ног, вы можете включить конструктор для Animal без параметра numberOfLegs и установить для него значение, скажем 4.
public abstract class Animal
{
private int numberOfLegs;
public Animal()
{
this.numberOfLegs = 4;
}
}
Возможно ли сделать numberOfLegs : Доступно из Animal
Да, вы можете вызвать метод (если он абстрактный в классе Animal) из любого объекта, расширяющего Animal
Zebra z = new Zebra(4);
System.out.println(z.getNumberOfLegs());