一、抽象类
1、只要包含抽象方法的类就是抽象类
2、抽象类必须加abstract 修饰
3、抽象类不能直接实例化
4、抽象类必须被继承才能使用,而且还要完成里面的所有抽象方法
5、如果有任何一个抽象方法没有被实现 那么这个类也必须是抽象类
abstract class A{
abstract public function say();
}
abstract class B extends A{
public function say(){
}
}
class C extends B{
public function say(){}
}
二、抽象方法
1、没有方法体的方法
2、必须使用abstract来修饰
abstract class Animal{
abstract public function show();
}
3、抽象方法需要被重写
4、重写了所有抽象方法的类才算是一个完整的类,可以被实例化
三、抽象类和抽象方法的作用
就是在企业中制定规范的作用
四、接口 作用:指定规范
1、定义格式
interface 接口名{
[常量]
[抽象方法]
}
2、特性:
在接口里面所有方法都是抽象方法 不需要特殊修饰
接口与接口之间 是继承关系
类与接口之间是实现关系
实现接口可以多实现 中间用逗号隔开
类在继承其他类的时候 可以实现接口(多实现)继承一定要写在实现的前面
//定义一个USB接口
interface USB{
//在接口里 所有的方法都是抽象方法 不需要额外修饰 不能使用普通方法
public function run();
}
//接口与接口之间是继承关系
interface ps2 extends USB{
public function move();
}
interface typeC{
public function xxx();
}
class A{}
//类与接口之间是实现关系
//实现接口可以多实现 中间用逗号隔开
//类在继承其他类的同时可以实现接口(多实现)继承一定要在实现的前面
class Mouse extends A implements ps2,typeC{
public function run(){}
public function move(){}
public function xxx(){}
}
3、作用:制定规范使用
4、与抽象类的差异
单纯的用于制定规范 接口两种都可以
在制定规范的时候要共享一些方法 只能使用抽象类
五、多态
多态:不同的对象做相同的事情得到不同的结果
class MeiZi{
public function meet($obj){
$obj->ber();
}
}
//制定规范
abstract class Hanzi{
abstract public function ber();
}
class DDS extends Hanzi{
public function ber(){
echo'滚';
}
}
class GFS extends Hanzi{
public function ber(){
echo'不滚';
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。