#22 Интерфейсы - объявление и применение | Java для начинающих
HTML-код
- Опубликовано: 21 сен 2024
- Что такое интерфейсы (interface), зачем они нужны, как объявляются и применяются в классах и чем отличаются от абстрактных классов. Примеры реализации интерфейсов. Интерфейс как тип данных.
Инфо-сайт: proproprogs.ru
Красавчик! На одном дыхании!!! Одно из самых лучших объяснений!!!! Продолжай нас учить ))))!! Спасибо!!!
Супер- классно . Самое важное для новичка рассказал - потому-что у многих видео длинное суть то раскрывает а для чего это нужно - куда жать чтобы создать как создать в какой строке можно вставить или отдельным файлом не показывают . Ты раскрыл тут все эти очень очень нужные мелочи казалось бы - для новичка. самое главное не путаешь терминами попутно их объясняя на человеческом языке что реализовать интерфейс значит то то ..Спасибо большое.
Каждый урок - космос! Очень интересно и полезно. Спасибо
Спасибо! Жду новых видео по Java
Как всегда супер, спасибо!
Супер! Спасибо большое. Самое толковое и понятное видео. 👍👍👍
Боже мой что там понятного,остановите землю я сойду…
Спасибо за урок.
Спасибо большое, сразу стало понятно)
Спасибо за видео, все понятно)))
Спасибо
Спасибо за ваш труд. Сделайте пожалуйста видео про Enum. Как им можно эффективно пользоваться?
Скоро будет )
Лайк и атлична!!!
всё супер объяснено, но перед именем интерфейса по правилам хорошего тона принято писать "I"
Like👍
в начале было куча вопросов, в конце остался один, за что автору 100+. :)
а вопрос/замечание следушее
MathGeom g[] = new MathGeom[5]; ОК. т.е можно создать масив интерфеисов
MathGeom g= new MathGeom(); ЕRROR. т.е нельзя создать один интерфеис (стандартным человеческим способом)
MathGeom g[] = new MathGeom[1]; ОК. т.е создал 1 интерфеис (через одно место)
может есть какои-то другои способ :)
Спасибо! Экземпляр интерфейса создавать действительно нельзя, вот эта команда MathGeom g[] = new MathGeom[1] она создает ссылку интерфейсного типа, а не сам интерфейс. Это эквивалентно, например, следующему: MathGeom g = new Ellipse() (при условии, что Ellipse использует этот интерфейс).
@@selfedu_rus да конечно,я имел ввиду сылку. Спасибо. хотя я понимаю что единственный экземпляр бессмысленно так создавать. Просто подумал что может есть сахар в этом вопросе
В чем смысл интерфейсов кроме как приведения объекта дочернего класса к объекту родительского класса? (upcasting)
Хотя появился вопросик, когда класс реализуешь метод интерфейса, получается не надо прописывать @Override? И при наследовании от абстрактных классов я не заметил, чтобы ты прописывал это
для абстрактных (виртуальных) не нужно
Банальнейший затасканный пример, на котором вообще не видно необходимости/преимущества/силы использования интерфейсов.
предложите другой ?
некорректное задание - нужно реализовать интерфейс для работы с бд сотрудников, а от него унаследовать сотрудников(руководителей и рабочих) и клиентов. каким боком тут клиенты вообще? они же не сотрудники? или я чет не так понял?
задачи решены,
в мейне
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();
классы:
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);
}
}
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);
}
}
Спасибо за урок.