Blogger Information
Blog 36
fans 2
comment 0
visits 23608
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP接口与抽象类练习
Rambo-Yang
Original
795 people have browsed it

抽象类练习

  1. abstract class a{
  2. public $name;
  3. public $age;
  4. public function __construct($name,$age)
  5. {
  6. $this->name =$name;
  7. $this->age = $age;
  8. }
  9. abstract protected function getInfo();
  10. abstract protected function getInfo2($name);
  11. public function getInfo3()
  12. {
  13. return '<hr>getInfo3:'.$this->name;
  14. }
  15. }
  16. class b extends a {
  17. public function getInfo(){
  18. return '<hr>getinfo:'.$this->name .'---'.$this->age;
  19. }
  20. public function getInfo2($name)
  21. {
  22. $this->name = $name;
  23. }
  24. }
  25. $b = new b('rambo','18');
  26. echo $b->getInfo3();
  27. echo $b->getInfo();
  28. echo $b->getInfo2('ouyang');
  29. echo $b->getInfo3();

接口练习

  1. interface v{
  2. const country = '中国';
  3. public function setFull($fuel);
  4. public function setPurpose($purpose);
  5. }
  6. class Car implements v{
  7. public $fuel;
  8. public $purpose;
  9. public function __construct($fuel='汽油',$purpose='家用')
  10. {
  11. $this->fuel = $fuel;
  12. $this->purpose = $purpose;
  13. }
  14. public function setFull($fuel)
  15. {
  16. $this->fuel = $fuel;
  17. }
  18. public function setPurpose($purpose)
  19. {
  20. $this->purpose = $purpose;
  21. }
  22. public function getInfo(){
  23. return $this->fuel . $this->purpose . '车';
  24. }
  25. }
  26. $car = new Car();
  27. echo $car -> getInfo();
  28. echo '<hr>';
  29. $car ->setFull('新能源');
  30. $car ->setPurpose('出租');
  31. echo $car -> getInfo();

抽象类

  • 1,abstract定义抽象方法、抽象类
  • 2,抽象类只能被继承,不能实例化,且抽象方法都必须在子类复写
  • 3,类中只要有一个抽象方法,该类就必须声明为抽象类
  • 4,实现抽象方法的子类方法可见性不能低于父抽象方法的可见性
  • 5,抽象方法不能有方法体,不能有{}
  • 6,在实际开发中,通常并不会直接使用一个父类/超类,而是在父类中定义一些方法声明
  • 7,并且确信该方法肯定是会被子类重写的,父类中没必要实现,只要给一个方法编写规范即可
  • 8,这个规范包括方法的名称,参数列表等,具体实现就全部交给子类去完成了
  • 9,相当于公司的部门主管,接到老板的任务,只把属于自己的部分做了,其他部分,设置一个标准交给下属去完成
  • 10,父类的构造方法可见性为protected时,子类不会自动继承, 必须手动重写构造方法,可以用parent::手动调用

接口

  • 1,interface 指定某个类必须实现的方法,但不需要定义方法的具体实现过程
  • 2,接口中仅允许出现方法和常量
  • 3,接口方法的可见性必须是public,且方法体必须是空的
  • 4,接口是类的代码模板,可以像类一样有父子继承关系,例如:父接口,子接口
  • 5,implements 类实现接口的关键字
  • 6,如果仅是部分实现接口中的方法,请用一个抽象类来实现他
  • 7,接口中的方法,必须全是抽象方法

抽象类和接口的区别

  • 抽象可以有普通方法,成员变量
  • 接口不可以有普通方法,不可以有成员变量
Correcting teacher:查无此人查无此人

Correction status:qualified

Teacher's comments:完成的不错,继续加油。
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post