面向对象的三大特征与抽象类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/User_meng/article/details/78535750

继承的概念

在现实生活中,继承一般指子女继承父辈的财产。在程序中,继承描述事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部的员工和维护部的员工继承与员工。

1、继承好处
继承提高代码的复用性
继承让类与类之间产生了关系,提供了多态的前提

2、注意
a、类只支持单继承
b、一个类是可以被多个类继承

抽象类

例如:一辆自行车和一辆汽车都一样性质都是代步工具,一个人从A到B他可以选择骑自行车和开汽车
这时候出现了同样的目的,但是执行方式不同,自行车是骑,汽车是开,但是有共同的特征就是跑。
这时候就可以把这个跑提取出来,这样的方式就为抽象。

注:
1、抽象类和抽象方法都必须要被abstract修饰
2、抽象类不可以直接创建对象。
3、只有覆盖了抽象类中的抽象方法,其子类才可以创建对象。
4、抽象类中可以没有抽象方法。
5、有抽象方法的类一定是抽象类。

接口

1、接口的概念
接口可以看做为功能集合,只定义了方法体,没有具体的实现
这样讲功能的定义和实现分离,优化了程序的设计
关键字:interface
注:接口中的方法均为公共方位的抽象方法
接口中无法定义普通的成员变量
2、接口的好处
1、接口的出现扩展了功能
2、接口其实就是暴露出来的规则
3、接口的出现降低了耦合性,既设备与设备之间的结耦

接口和抽象类的区别

相同点:
都位于继承和实现的顶端,用于被其他类实现和继承

都不能直接实例化对象

都包含抽象方法、其子类或者是实现这些接口的类必须覆盖这些方法

区别

抽象类可以为部分方法进行实现,避免重复实现这些方法,提高了代码的重用性,接口只能包含抽象方法

单继承和多实现

多态

例如:金毛和泰迪都是狗,狗有金毛和泰迪两个品种。
狗 == 金毛
狗 == 泰迪
在形象点,如果有人不知道金毛和泰迪是什么,那你跟他说狗他一定知道的(不知道也我也没办法^-^)

多态的好处是子类可以向上转型,隐藏了子类的类型提高了代码的扩展性

弊端只能使用父类共性的东西,而无法使用子类特有的功能。

猜你喜欢

转载自blog.csdn.net/User_meng/article/details/78535750
今日推荐