[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Суть интерфейсов и абстрактных классов
Страницы: 1, 2, 3
Arh
Guest
Цитата

class Test1 extends Test - один и только один можно наследовать класс


Можно сколько угодно раз наследоваться

abstract class A {

}

class B extends A {

}


class C extends A {

}

class D extends A {

}


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Guest
При чём здесь это.
Имеется ввиду что дочерний может иметь только лишь одного предка и быть типом предка единожды, а с интерфейсами возможно иметь типы сколь угодно.
Цитата
class Test1 extends Test - один и только один можно наследовать класс

Более точно прочитайте. extends Test - один и только один можно наследовать
Arh
Guest
А в каких случаях класс может иметь больше чем одного предка?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
В php ни в каких. Но есть трейты.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Цитата (twin @ 24.12.2014 - 22:58)
В php ни в каких. Но есть трейты.

Тогда я не понимаю о чем Гость говорит

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Он говорит о параллельном (множественном) наследовании. Когда класс наследуется от нескольких предков одновременно. В PHP до 5.4 ветки это было невозможно. Сейчас придумали некоторую компромиссную схему - трейты. Это не совсем то, но очень близко.

А имплементироваться класс может от многих интерфейсов. В этом их сакраметальная разница.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
Ну так он не упоминает эти трейты, он говорит что как то через интерфейс можно множественно наследовать, а через абстрактный только один раз.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Не наследовать. Классу можно "присвоить" несколько интерфейсов и он будет обязан реализовать все их методы. С абстрактными классами так не выйдет.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Цитата (twin @ 24.12.2014 - 23:18)
Не наследовать. Классу можно "присвоить" несколько интерфейсов и он будет обязан реализовать все их методы. С абстрактными классами так не выйдет.

А вот так чтоль?
interface A {
function one();
}
interface A1 {
function two();
}
class B implements A,A1 {
function one(){
echo 'Один';
}
function two(){
echo 'Два';
}
}



$b = new b;
$b->one();
$b->two();


Теперь понял, а вот так нельзя.

abstract class A {
abstract function one();
}
abstract class A1 {
abstract function two();
}
class B extends A,A1 {
function one(){
echo 'Один';
}
function two(){
echo 'Два';
}
}



$b = new b;
$b->one();
$b->two();


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.