封装,继承,多态

本文详细介绍了面向对象编程的三大特性:封装、继承和多态。封装通过隐藏类的实现细节,确保数据安全;继承允许子类复用父类的属性和方法,简化代码并增强一致性;多态则实现了使用父类对象操作子类对象的灵活性,提高了程序的可扩展性和可维护性。理解这些概念对于提升软件设计能力至关重要。
摘要由CSDN通过智能技术生成

一、封装

定义:

将类的某些信息隐藏在类内部(private),不允许外部程序直接访问,而是通过该类提供的公共属性(public)来实现对隐藏信息的操作和访问;防止类中的数据被恶意修改

好处:

1、隐藏类的实现细节

2、只能通过规定属性访问数据

3、方便加入控制语句

4、方便修改实现

二、继承

继承:子类直接使用父类定义好的字段和方法,从而实现代码的复用
 基类(父类,超类):被继承的类
 派生类(子类):继承的类

特征

1)子类继承了父类的属性和方法(public、protected),但是构造方法不能被继承

2)子类使用构造方法调用父类构造方法用 base()

3)调用父类属性和方法可以用base关键字

4)创建子类对象时,系统默认先调用父类构造方法,然后再调用子类构造方法

5)子类使用父类的属性和方法用  base 关键字(public、protected)

注意:

当父类有有参构造方法时,如果子类有构造方法(无参或有参),要求父类必须有一个无参构造方法。

如果子类没有构造方法,父类也需要提供一个无参构造方法。

如果不提供,子类构造方法会报错!

重写(override)

重写:在子类和父类中,子类中的方法名称和父类方法名称相同,参数相同

重载(overload):在同一个类中,方法名称相同,参数不同(个数、类型),与返回值无关

虚方法(virtual)

在某基类中声明 virtual 并在一个或多个派生类中被重新定义的成员方法称为虚方法。

虚方法与一般方法的区别

1、写法不同

2一般方法在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死的!而虚方法在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的方法。

使用继承的好处

(1)继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。(拓展新功能)

(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。

(3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。

(4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。

三、多态

定义:使用父类对象统一操作子类对象,从而使父类对象有多种表现形态;(多人做同一件事情,结果是不一样的)

实现多态的两个要素

1)子类重写父类方法

2)使用父类的类型(子类转换为父类:向上转型)

向上转型:将子类对象转为父类对象。此处父类对象可以是接口或抽象类。(转化后的父类对象具有父类所有方法,若方法被子类重写override,那么实际调用时,调用的是重写后的实现。

向下转型:把父类对象转换为子类对象(转化后的子类对象,跟一般的继承子类对象一样。具有子类所有方法(包括重写方法)+父类所有方法(被重写的方法,按重写的算。))

使用多态的好处

1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的

可复用性。//继承 
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护

性。 //多态的真正作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值