Загрузка данных


//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("Мессенджер не установлен!");
        }
    }
}