texsce
как в пайтоне реализована абстракция- базовый принцип ООП?
так сравни php и python
вот из интернета, с первых страниц
php
<?php
abstract class AbstractClass
{
// Данные методы должны быть определены в дочернем классе
abstract protected function getValue();
abstract protected function prefixValue($prefix);
// Общий метод
public function printOut() {
print $this->getValue() . "\n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}
class ConcreteClass2 extends AbstractClass
{
public function getValue() {
return "ConcreteClass2";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass2";
}
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";
$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>
python
# Python program demonstrate
# abstract base class work
from abc import ABC, abstractmethod
class Car(ABC):
def mileage(self):
pass
class Tesla(Car):
def mileage(self):
print("The mileage is 30kmph")
class Suzuki(Car):
def mileage(self):
print("The mileage is 25kmph ")
class Duster(Car):
def mileage(self):
print("The mileage is 24kmph ")
class Renault(Car):
def mileage(self):
print("The mileage is 27kmph ")
# Driver code
t= Tesla ()
t.mileage()
r = Renault()
r.mileage()
s = Suzuki()
s.mileage()
d = Duster()
d.mileage()
texsce
это наследование
абстракция в ооп - это когда описываешь базовый класс с ключевыми, важными, основными, определяющими характеристиками. Он обобщенный - абстрактный. От него
наследуются другие более уточняющие классы, от них могут унаследоваться еще более уточняющие классы.Т.е не нужно для каждого класса описывать одно и тоже, это сделано на уровне выше, в абстрактном классе.
texsce
может литературу подскажете?
Хоть зачитайся, это понимание приходит тогда, когда у тебя много кода - алгоритмов, ты их уже можешь писать, и понимаешь что их нужно как-то организовать, чтобы не переписывать одно и тоже по 100 раз и чтобы было меньше ошибок с использованием того кода, который уже есть.
texsce
ох…. да ребята, а я думал в php снобы, ну давайте разберемся с вашими ответами
у тебя тема из разряда - Умный не спросит, дурак не поймет.