为什么设计抽象类这个技术?

1:在实际开发中,我们可能有一种类,是其他类的父类,但是他本身不需要实例化,主要用途让子类继承。这样可达到代码复用。同时有利于代码设计者 设计类。

使用抽象类的注意事项

1基本用法

  abstract class 类名{

        //方法

        

        //属性 

2 如果一个类使用了abstract 则该类就是抽象类  如果一个方法被abstract  修饰了 则该方法就是抽象方法【抽象方法不能有方法体】

3 抽象类不能被实例化(猫,狗 抽象为动物 无法实例一个动物的动物 只能实例化一个 狗,猫的动物)

4 抽象类不一定包含abstract方法,也就是说抽象类可以没有抽象方法

5 一旦包涵了abstract方法,则该类必须是抽象类。抽象方法不能有函数体

6 如果一个类继承了抽象类,则他必须实现抽象类所有的抽象方法


代码

<?php 
/**
* 
*/
abstract class Animal {
	private $age;
	private $name;
	public function __construct($age,$name) {
		$this->age  = $age;
		$this->name = $name;
	}
	public function get($name) {
		if (property_exists($this,$name))
			return $this->$name;
		else 
			return '当前类没有'.$name.'属性';
	}
	// 错误写法1 原因 不能有方法体

	// abstract public function add() {

	// }

	abstract public function add();
}

class Dog extends Animal{
	public function add() {
		echo '123';
	}
}

$d = new Dog(23,'狗');
echo $d->get('age');
$d->add();


发表评论

电子邮件地址不会被公开。