抽象类: 通用的东西放到一块,写一个父类,不同的东西各个子类来实现
- 抽象类不能实例化对象
- 抽象类存在的目的是为了让子类继承
- 抽象类的定义和普通类的定义一样,只不过前面加一个关键字,abstract
- 抽象类里面一般都要有抽象方法,抽象方法是用来让子类实现的,而且子类必须实现,不实现就报错
- 抽象方法只能是public 或者protected。因为只有这两总修饰才可以被继承
- 抽象方法如果有参数,参数有 默认值,那么实现该方法的时候参数跟默认值也都要有
- 抽象类可以继承抽象类,子类在实现的时候所有的抽象方法都得实现
接口:抽象的抽象类,interface:接口。 implements:实现
- 接口中的方法 都是抽象方法,所以abstract可以不写
- 接口中的方法必须是public
- 接口中只能规定过方法,不能写属性,(接口中可以写常量)
- 一个类可以实现多个接口,中间用逗号隔开
- 一个类可以先继承父类,然后再实现接口
- 接口可以继承接口,但是里面的方法都要实现
trait:特性,trait 是用来模拟实现多继承的 - 定义trait要以trait关键字开头,然后里面的写法和类的写法一样,一般情况下我们在trait中不加成员属性,只加成员方法
- trait不能实例化
- trait 中的方法想让子类来使用,该方法必须是public
- trait 可以嵌套trait