Может ли абстрактный класс класса иметь атрибут, который является интерфейсом в Java? - PullRequest
0 голосов
/ 28 июня 2019

Я работаю с шаблоном DAO на Java, для реализации я использую интерфейс DAO, который реализуется абстрактным классом ItemDAO, а затем приводит к таким классам, как ItemDAOTxt и ItemDAOXml.Эта же логика используется в таких классах, как «OrderDAO» и «EmployeesDAO; я работаю над абстрактным классом, который будет использовать DAO особым образом,« ClassA ». Поэтому есть ли способ заставить некоторые разные классы расширять« ClassA »таким образом, чтобы я мог использовать любой DAO, какой захочу?

public abstract class ClassA
{
    private DAO<T> dao;
    //...
}

1 Ответ

0 голосов
/ 28 июня 2019

возможно это:

interface Foo<T> {
    T getValue();
}
abstract class Bar<T,U> implements Foo<T> {
    Bar(T t,U u) {
        this.t=t;
        this.u=u;
    }
    @Override public T getValue() {
        return t;
    }
    T t;
    U u;
}
class Baz<T,U>extends Bar<T,U> {
    Baz(T t,U u) {
        super(t,u);
    }
}
public class So56811426 {
    public static void main(String[] args) {
        Baz<Integer,Character> baz=new Baz<Integer,Character>(42,'x');
        System.out.println(baz.getValue()+" "+baz.u);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...