==========================================================================================
模板方法设计模式:
将相同的部分抽离出去.
==========================================================================================
接口:
==========================================================================================
接口的实现关系:
子类实现接口,就要完全覆盖接口中的所有方法。否则就会报错,类XX不是抽象的,没有覆盖接口XX中的抽象方法XXX。
==========================================================================================
抽象类和接口的异同点:
抽象类有构造方法,因为抽象类定义的是抽象的方法,必须要子类去继承抽象类才能使方法得以实现。
抽象类和接口都不能实例化。
abstrct class A
{
}
interface B
{
}
不能再测试类或者其他的类中去直接new A() 或者new B(),从安全的角度上来讲,这样更加安全,不能被其他人随便的创建,常用于工具类的包装。
抽象类的实现通过子类的extends实现功能。
接口的实现通过子类implements去实现。
子类必须去覆盖接口和抽象类的所有方法。
抽象类可以普通方法和抽象方法同在,接口只能有抽象方法。
抽象类的普通方法和普通类没有区别,继承到子类中去,抽象方法必须要覆盖。
抽象类有显示构造器。因为子类继承时会调用super()默认构造器,所以抽象类一定有构造器.
==========================================================================================
面向接口变成的好处。
面向接口变成运用了接口是一种特殊的继承,一种特殊的类的特点。
只要是实现了接口的类都可以和接口产生多态的关系。
接口 c = new 类XX()
例如:
==========================================================================================