java extends abstract class

255
10 сентября 2018, 12:30

Как создать абстрактный класс с полем которое должно быть обязательно нициализировано?

Answer 1

Близко к тому решение...можно объявить конструктор у абстрактного класса и после унаследования обязательно нужно будет вызвать его...собственно там и проинициализируете поле.

public abstract class Animal {
    protected String name;
    public Animal(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}
public class Dog extends Animal {
    public Dog(String type) {
        super(type);
    }
}
public class Application {
    public static void main(String[] args) {
        Animal animal = new Dog("Aaa");
        System.out.println(animal.getName());
    }
}
Answer 2

Обязать иниацилизировать поля не выйдет, но подобное можно сделать через абстрактные геттер-функции, например:

abstract class AbstractFooBar {
    public abstract String getValue();
}
class MyFoo extends AbstractFooBar {
    private static final String VALUE = "Foo";
    @Override
    public String getValue() {
        return VALUE;
    }
}
class MyBar extends AbstractFooBar {
    private static final String VALUE = "Bar";
    @Override
    public String getValue() {
        return VALUE;
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        MyFoo foo = new MyFoo();
        System.out.println(foo.getValue());    // Foo
        MyBar bar = new MyBar();
        System.out.println(bar.getValue());    // Bar
        AbstractFooBar fooBar = new MyBar();
        System.out.println(fooBar.getValue()); // Bar
    }
}
READ ALSO
Не работает поиск в MySQL

Не работает поиск в MySQL

Отправляю запрос на поиск в MySQL в следующем коде:

254
Java XMPP client Smack 4.2.4 <bad-auth/>

Java XMPP client Smack 4.2.4 <bad-auth/>

Всем привет, я очень начинающий и пытаюсь написать простой jabber клиент для получения сообщений, и их последующего анализаВот мой код:

256
Ошибка подключения к вебсокету

Ошибка подключения к вебсокету

Хочу подрубиться к вебсокету по логин паролюРугается на tls

215
функция findShort(s)

функция findShort(s)

Дается строка из словНужна длина самого короткого слова

212