继承的概念
在现实生活中,继承一般指子女继承父辈的财产。在程序中,继承描述事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部的员工和维护部的员工继承与员工。
1、继承好处
继承提高代码的复用性
继承让类与类之间产生了关系,提供了多态的前提
2、注意
a、类只支持单继承
b、一个类是可以被多个类继承
抽象类
例如:一辆自行车和一辆汽车都一样性质都是代步工具,一个人从A到B他可以选择骑自行车和开汽车
这时候出现了同样的目的,但是执行方式不同,自行车是骑,汽车是开,但是有共同的特征就是跑。
这时候就可以把这个跑提取出来,这样的方式就为抽象。
注:
1、抽象类和抽象方法都必须要被abstract修饰
2、抽象类不可以直接创建对象。
3、只有覆盖了抽象类中的抽象方法,其子类才可以创建对象。
4、抽象类中可以没有抽象方法。
5、有抽象方法的类一定是抽象类。
接口
1、接口的概念
接口可以看做为功能集合,只定义了方法体,没有具体的实现
这样讲功能的定义和实现分离,优化了程序的设计
关键字:interface
注:接口中的方法均为公共方位的抽象方法
接口中无法定义普通的成员变量
2、接口的好处
1、接口的出现扩展了功能
2、接口其实就是暴露出来的规则
3、接口的出现降低了耦合性,既设备与设备之间的结耦
接口和抽象类的区别
相同点:
都位于继承和实现的顶端,用于被其他类实现和继承
都不能直接实例化对象
都包含抽象方法、其子类或者是实现这些接口的类必须覆盖这些方法
区别
抽象类可以为部分方法进行实现,避免重复实现这些方法,提高了代码的重用性,接口只能包含抽象方法
单继承和多实现
多态
例如:金毛和泰迪都是狗,狗有金毛和泰迪两个品种。
狗 == 金毛
狗 == 泰迪
在形象点,如果有人不知道金毛和泰迪是什么,那你跟他说狗他一定知道的(不知道也我也没办法^-^)
多态的好处是子类可以向上转型,隐藏了子类的类型提高了代码的扩展性
弊端只能使用父类共性的东西,而无法使用子类特有的功能。