<?php /*ПРАКТИЧЕСКОЕ ПРИМЕНЕИЕ НАСЛЕДОВАНИЯ*/ //Наследование - это механизм позволяющий определять дочерний класс(производный класс) на основе родительского класса(супер класс), забрав все его свойства и методы. //Ключевое слово extends - обозначает что первый указанный клас наследует все свойства и методы второго указанного класса(class 1класс extends 2класс). Не забываем что к свойствам и методом с пометкой private он доступ иметь не будет //В дочернем классе можем переопределять все свойства и методы родительского класса. //Ключевое слово final - ставиться впереди метода и не позволяет переопределить метод в дочернем классе, указывает что это финальная версия require_once getenv("DOCUMENT_ROOT") . "/lib/config.php"; require_once "PointRed.php"; $point_red = new PointRed(4, 7); echo $point_red->getX() . "<br/>"; echo $point_red->getY() . "<br/>"; echo $point_red->getColor() . "<br/>"; echo $point_red->lengthObject(new Point(5, 6)); $point = new Point(8, 10); echo $point->lengthObject(new Point(2, 4)) . "<br/>";
<?php /*ПРАКТИЧЕСКОЕ ПРИМЕНЕИЕ ИНКАПСУЛЯЦИИ*/ //Инкапсуляция - это свойство ООП позволяющее защитить и объединить данные и код в объект и скрыть реализацию объекта от пользователя. //Модификатор доступа public - позволяет обращаться к свойствам и методам отовсюду. //Модификатор доступа private - позволяет обращаться к свойствам и методам только внутри текущего класса. //Модификатор доступа protected - позволяет обращаться к свойствам и методам только текущего класса и класса, который наследует свойства и методы текущего класса //Лучше всего скрывать поля (свойства), а доступ давать к ним через методы require_once getenv("DOCUMENT_ROOT") . "/lib/config.php"; require_once "Point.php"; $point = new Point(); //echo $point->length(5, 4); //echo $point->x; $point->setX(10); $point->setY(-6); echo $point->getX($x) . "<br/>"; echo $point->getY($y) . "<br/>"; echo $point->lengthObject(new Point(4, 9));