#22 Интерфейсы - объявление и применение | Java для начинающих

Поделиться
HTML-код
  • Опубликовано: 21 сен 2024
  • Что такое интерфейсы (interface), зачем они нужны, как объявляются и применяются в классах и чем отличаются от абстрактных классов. Примеры реализации интерфейсов. Интерфейс как тип данных.
    Инфо-сайт: proproprogs.ru

Комментарии • 31

  • @sergei_voitenkov
    @sergei_voitenkov 3 года назад +9

    Красавчик! На одном дыхании!!! Одно из самых лучших объяснений!!!! Продолжай нас учить ))))!! Спасибо!!!

  • @Лучшиефильмы-р4у
    @Лучшиефильмы-р4у Год назад +3

    Супер- классно . Самое важное для новичка рассказал - потому-что у многих видео длинное суть то раскрывает а для чего это нужно - куда жать чтобы создать как создать в какой строке можно вставить или отдельным файлом не показывают . Ты раскрыл тут все эти очень очень нужные мелочи казалось бы - для новичка. самое главное не путаешь терминами попутно их объясняя на человеческом языке что реализовать интерфейс значит то то ..Спасибо большое.

  • @АсяХаликова-в7б
    @АсяХаликова-в7б 9 месяцев назад +2

    Каждый урок - космос! Очень интересно и полезно. Спасибо

  • @anjelomanoranjan
    @anjelomanoranjan 10 месяцев назад +2

    Спасибо! Жду новых видео по Java

  • @FerrasRX
    @FerrasRX 3 года назад +8

    Как всегда супер, спасибо!

  • @АлисаГусева-и5с
    @АлисаГусева-и5с 2 года назад +3

    Супер! Спасибо большое. Самое толковое и понятное видео. 👍👍👍

    • @АльбаМега-м8р
      @АльбаМега-м8р Год назад

      Боже мой что там понятного,остановите землю я сойду…

  • @rostislavmalyshev1775
    @rostislavmalyshev1775 3 года назад +2

    Спасибо за урок.

  • @Алекс-ю8э2с
    @Алекс-ю8э2с 2 года назад +2

    Спасибо большое, сразу стало понятно)

  • @СергейПетров-б1ф
    @СергейПетров-б1ф 2 года назад +2

    Спасибо за видео, все понятно)))

  • @andreychernykh256
    @andreychernykh256 3 года назад +3

    Спасибо

  • @andreybursov2857
    @andreybursov2857 3 года назад +3

    Спасибо за ваш труд. Сделайте пожалуйста видео про Enum. Как им можно эффективно пользоваться?

  • @beuef1379
    @beuef1379 3 года назад +2

    Лайк и атлична!!!

  • @dens7117
    @dens7117 2 года назад +2

    всё супер объяснено, но перед именем интерфейса по правилам хорошего тона принято писать "I"

  • @ВикторЖигурда
    @ВикторЖигурда 3 года назад +3

    Like👍

  • @giorgi_pa
    @giorgi_pa 3 года назад +3

    в начале было куча вопросов, в конце остался один, за что автору 100+. :)
    а вопрос/замечание следушее
    MathGeom g[] = new MathGeom[5]; ОК. т.е можно создать масив интерфеисов
    MathGeom g= new MathGeom(); ЕRROR. т.е нельзя создать один интерфеис (стандартным человеческим способом)
    MathGeom g[] = new MathGeom[1]; ОК. т.е создал 1 интерфеис (через одно место)
    может есть какои-то другои способ :)

    • @selfedu_rus
      @selfedu_rus  3 года назад +1

      Спасибо! Экземпляр интерфейса создавать действительно нельзя, вот эта команда MathGeom g[] = new MathGeom[1] она создает ссылку интерфейсного типа, а не сам интерфейс. Это эквивалентно, например, следующему: MathGeom g = new Ellipse() (при условии, что Ellipse использует этот интерфейс).

    • @georgepetrosyan4589
      @georgepetrosyan4589 3 года назад

      @@selfedu_rus да конечно,я имел ввиду сылку. Спасибо. хотя я понимаю что единственный экземпляр бессмысленно так создавать. Просто подумал что может есть сахар в этом вопросе

  • @kasdo6649
    @kasdo6649 8 месяцев назад +1

    В чем смысл интерфейсов кроме как приведения объекта дочернего класса к объекту родительского класса? (upcasting)

  • @СергейПетров-б1ф
    @СергейПетров-б1ф 2 года назад +2

    Хотя появился вопросик, когда класс реализуешь метод интерфейса, получается не надо прописывать @Override? И при наследовании от абстрактных классов я не заметил, чтобы ты прописывал это

    • @selfedu_rus
      @selfedu_rus  2 года назад

      для абстрактных (виртуальных) не нужно

  • @BookwormYevgen
    @BookwormYevgen 3 года назад +2

    Банальнейший затасканный пример, на котором вообще не видно необходимости/преимущества/силы использования интерфейсов.

  • @kurtik87
    @kurtik87 Год назад +2

    некорректное задание - нужно реализовать интерфейс для работы с бд сотрудников, а от него унаследовать сотрудников(руководителей и рабочих) и клиентов. каким боком тут клиенты вообще? они же не сотрудники? или я чет не так понял?

  • @Частныйсектор-х4я
    @Частныйсектор-х4я Год назад +1

    задачи решены,
    в мейне
    PersonInterface [] p = new PersonInterface[3];
    p[0] = new Clients("Borisov BN", "Manager", "Stavroolskay st",10052000,7,772421096);
    p[1] = new Supervisers("Nanain MZ","Saler","Lenin st",10111984,1,234782);
    p[2] = new Jobs("Cosmos DF","Worker","Abulhair st",10101977,5,234373);
    p[0].getFIO();
    p[1].getInfo();
    p[2].getStatus();

    • @Частныйсектор-х4я
      @Частныйсектор-х4я Год назад +1

      классы:
      interface PersonInterface{
      void getInfo();
      void getStatus();
      void getFIO();
      }
      class Supervisers implements PersonInterface {
      String FIO, position, homeAddress;
      int years, department, phonenumber;
      public Supervisers(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      this.FIO = FIO;
      this.position = position;
      this.homeAddress = homeAddress;
      this.years = years;
      this.department = department;
      this.phonenumber = phonenumber;
      }
      public void getInfo(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      }
      class Jobs extends Supervisers implements PersonInterface {
      public Jobs(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      super(FIO, position, homeAddress, years, department, phonenumber);
      }
      public void getInfo(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      }
      class Clients extends Supervisers implements PersonInterface {
      public Clients(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      super(FIO, position, homeAddress, years, department, phonenumber);
      }
      public void getInfo(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      }

    • @Частныйсектор-х4я
      @Частныйсектор-х4я Год назад +2

      2я задача
      мейн
      PersonInterface [] p = new PersonInterface[3];
      p[0] = new Clients("Borisov BN", "Manager", 10551977,10052);
      p[1] = new Supervisers("Nanain MZ","Saler","Lenin st",10111984,1,234782);
      p[2] = new Jobs("Cosmos DF","Worker","Abulhair st",10101977,5,234373);
      p[0].getFIO();
      p[1].getInfo();
      p[2].getStatus();
      p[0].showStaff();
      классы:
      interface PersonInterface{
      void getInfo();
      void getStatus();
      void getFIO();
      void showStaff();
      }
      class Persons {
      String FIO, position, homeAddress;
      int years, department, phonenumber;
      static int count = 0, count_clients = 0;
      Persons(String FIO, String homeAddress, int years, int phonenumber){}
      public Persons(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      this.FIO = FIO;
      this.position = position;
      this.homeAddress = homeAddress;
      this.years = years;
      this.department = department;
      this.phonenumber = phonenumber;
      }
      }
      class Supervisers extends Persons implements PersonInterface {
      public Supervisers(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      super(FIO, position, homeAddress, years, department, phonenumber);
      count++;
      }
      public void getInfo(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      public void showStaff(){
      System.out.println("Total employee: " + count);
      System.out.println("Total clients: " + count_clients);
      }
      }
      class Jobs extends Persons implements PersonInterface {
      public Jobs(String FIO, String position, String homeAddress, int years, int department, int phonenumber) {
      super(FIO, position, homeAddress, years, department, phonenumber);
      count++;
      }
      public void getInfo(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO + " на позиции "+position+ " работает в департаменте "+department);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      public void showStaff(){
      System.out.println("Total employee: " + count);
      System.out.println("Total clients: " + count_clients);
      }
      }
      class Clients extends Persons implements PersonInterface {
      public Clients(String FIO, String homeAddress, int years, int phonenumber) {
      super(FIO, homeAddress, years, phonenumber);
      count_clients++;
      }
      public void getInfo(){
      System.out.println(FIO);
      System.out.println("Проживает по адресу: "+ homeAddress + " День рожения: "+years);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getStatus(){
      System.out.println(FIO);
      System.out.println("контактный номер " + phonenumber);
      }
      public void getFIO(){
      System.out.println("FIO is: "+FIO);
      }
      public void showStaff(){
      System.out.println("Total employee: " + count);
      System.out.println("Total clients: " + count_clients);
      }
      }

  • @ВиталийКопоров-и4в
    @ВиталийКопоров-и4в 3 года назад +2

    Спасибо за урок.