接口,抽象类,虚方法。
接口和抽象类都不能被实例化,接口里边的方法全是抽象的,即只有方法名,没有实现。
抽象类里可以有不抽象的方法,但是包含抽象方法的一定是抽象类。
子类实现接口,必须实现所有的接口。
子类继承抽象类,必须实现所有的抽象类。
虚方法:就是 在子类可以重写的方法。
1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。
2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法
3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。
所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完全可以自己实现所有的方法,不会出现紧耦合的问题。
应用场合很简单了
1 优先定义接口
2 如果有多个接口实现有公用的部分,则使用抽象类,然后集成它。