Главная /
PHP: ООП и классы /
Если в классе не объявлен абстрактный метод, а сам класс объявлен абстрактным, то
Если в классе не объявлен абстрактный метод, а сам класс объявлен абстрактным, то
вопросПравильный ответ:
будет сгенерирована ошибка
будет сгенерировано предупреждение
ни ошибки, ни предупреждения не будет сгенерировано - такое использование механизма абстракции является корректным
ни ошибки, ни предупреждения не будет сгенерировано, однако такой класс нельзя будет использовать в качестве родителя при наследовании
Сложность вопроса
90
Сложность курса: PHP: ООП и классы
88
Оценить вопрос
Комментарии:
Аноним
Экзамен сдан и ладушки. Спасибо vtone
12 мар 2020
Аноним
Я завалил зачёт, почему я не нашёл этот великолепный сайт с решениями с тестами intuit прежде
08 июн 2018
Другие ответы на вопросы из темы программирование интуит.
- # Сценарий PHP содержит следующий код: <?php class cBar1 { public $_public = "открытый"; public $_protected = "защищенный"; public function _private(){return "закрытый";} } class cBar2 extends cBar1 { function View(){echo $this->_public." ".$this->_protected." ".$this->_private(); } } $foo = new cBar2; $foo->View(); ?> Укажите результат выполнения сценария:
- # Для расширения функциональности класса cTemplate был разработан класс cTemplateExtended. Конструктор нового класса не изменяет способ генерации значений полей родителя при создании объекта, поэтому было принято решение повторно использовать старый код. Содержимое файла class.Template.php: <?php <?php class cTemplate { /*базовая функциональность*/ public $LastWarning; protected $TType; private $XMLStr; function __construct($_TType,$_XMLStr) { if($_TType=="") { $this->TType = "simple"; $this->LastWarning = "Invalid type, type set to 'simple'"; } else $this->TType = $_TType; $this->XMLStr = $_XMLStr; } } class cTemplateExtended extends cTemplate { /*расширенная функциональность*/ protected $AdditionalParams; function __construct($_TType,$_XMLStr,$_AdditionalParams) { ___; $this->AdditionalParams = $_AdditionalParams; } } ?> Среди приведенных ниже фрагментов укажите все варианты кода, подстановка которого вместо знаков подчеркивания решит поставленную задачу:
- # Сценарий PHP содержит следующий код: <?php interface iInterf { abstract function f (); } ___ { protected $Data; function __construct($_D){$this->Data = $_D;} } class cBar extends cFoo { function f (){echo $this->Data;} } $foo = new cBar("реализация интерфейса"); $foo->f (); ?> Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом сценария будет строка "реализация интерфейса":
- # Сценарий PHP содержит следующий код: <?php function __autoload($_class) { ___; } $foo = new class_SimpleClass; ?> Код является частью проекта, в котором договоренности именования установлены следующим образом: имена классов состоят из собственно названия класса и предшествующего ему "class_", и для каждого класса есть файл, содержащие полное определение этого класса, причем имя файла имеет вид "class.the_название_класса.php". Среди приведенных ниже фрагментов укажите вариант кода, при подстановке которого вместо знаков подчеркивания сценарий будет работать корректно в соответствии с вышеуказанными условиями:
- # Сценарий PHP содержит следующий код: <?php class cFoo implements Iterator { public $Contents = array(); public function __construct($_Contents) { $this->Contents = $_Contents; } public function rewind() { reset($this->Contents); $this->Contents[0].="a"; } public function current() { return current($this->Contents); } public function key() { return key($this->Contents); } public function next() { return next($this->Contents); } public function valid() { $this->Contents[key($this->Contents)].="b"; return ($this->current() !== false); } } $foo = new cFoo(array("1","2","3","4")); $temp = 0; foreach ($foo as $bar) { $temp++; } echo $foo->Contents[0]; ?> Укажите результат выполнения сценария: