抽象方法与普通方法的区别
1、抽象方法不具有方法体 ,而普通方法有方法体
2、抽象方法需要用abstract修饰
//声明一个抽象类
abstract class Demo
{
//声明一个抽象方法
abstract public function hello();
//声明一个普通方法
abstract public function world()
{ //大括号以及被包住的地方就是方法体
return 111;
}
}
抽象类
抽象类中必须要有抽象方法吗?
答案是:不必须
抽象类中可以不含有抽象方法
但是如果一个类中有抽象方法,则该类必须声明为抽象类。
而且抽象类不可以被实例化,只能被继承。
继承了抽象类的子类,必须把父类的抽象方法实现出来。
接口
接口是一个特殊的抽象类,里面只能有抽象方法
接口使用interface定义
接口里面的抽象方法不用使用abstract定义
子类通过关键字implements去实现接口,必须把接口的抽象方法全部实现出来
一个子类可以实现多个端口【需要把多个接口的抽象方法全部实现出来】
抽象类与接口的区别:
抽象类使用关键字 abstract定义 接口使用interface定义
继承抽象类使用extends,接口只能被实现,用implements实现
抽象类里可以有抽象方法和普通方法 ,接口里只有抽象方法
抽象是单继承的,接口是多继承的