//abstract class
public abstract class Car {
private String model;
private String color;
private int maxSpeed;
public abstract void gas();
public abstract void brake();
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getMaxSpeed() {
return maxSpeed;
}
public void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
}
public class Sedan extends Car {
@Override
public void gas() {
System.out.println("Седан газует!");
}
@Override
public void brake() {
System.out.println("Седан тормозит!");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car(); // Ошибка! Класс Car является абстрактным!
Car mySedan = new Sedan();
mySedan.gas();
mySedan.brake();
}
}
//interfaces
public interface Messenger{
public void sendMessage();
public void getMessage();
}
public class Telegram implements Messenger {
public void sendMessage() {
System.out.println("Отправляем сообщение в Telegram!");
}
public void getMessage() {
System.out.println("Читаем сообщение в Telegram!");
}
}
public class Client {
private Messenger messenger;
// Сеттер, чтобы можно было установить клиенту мессенджер
public void setMessenger(Messenger messenger) {
this.messenger = messenger;
}
// Метод для отправки сообщения от имени клиента через выбранный мессенджер
public void sendMessage() {
if (messenger != null) {
messenger.sendMessage();
} else {
System.out.println("Мессенджер не установлен!");
}
}
}