Я создаю службу обмена сообщениями на Java, где использую сокеты и потоки ввода/вывода объектов. Я хотел сделать это как можно более объектно-ориентированным (чтобы изучить ООП), поэтому для клиентской стороны я создаю абстрактный клиентский класс с тремя подклассами (владелец, администратор и пользователь). Основная идея состоит в том, чтобы вместо этого поместить общий код в три подкласса родительского класса, чтобы минимизировать повторение кода.
Мой вопрос: если я создаю экземпляр сокета и потоков вывода и ввода объекта в родительском конструкторе это будет работать так же, как если бы я просто создал их экземпляры в подклассах?
Чтобы прояснить подклассы, владелец, администратор и пользователь будут иметь следующий код:
Код: Выделить всё
private Socket socket;
private ObjectOutputStream out;
private ObjectInputStream in;
Код: Выделить всё
protected subclassExample(){
this.socket = new Socket("localhost",8000)
this.out = new ObjectOutputStream(socket.getOutputStream());
this.in = new ObjectInputStream(socket.getInputStream());
}
Поэтому я хотел переместить приведенный выше код из подклассов в их родительский класс, затем использовать super в подклассе для создания экземпляра кода вместо этого и использовать геттеры для доступа к сокету и т. д. позже в реализация.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... hild-class