面向对象编程的四大特征

关于面向对象编程

什么是面向对象?
我一直都觉得这是一个很抽象的问题。
与面向对象编程相对应的就是面向过程编程。
可以拿生活中的实例来理解面向过程与面向对象。
例如:制作五花肉。

面向过程:
  1. 去菜市场买五花肉
  2. 洗净、切块、准备作料等备用
  3. 下锅、上色、翻炒、炖
  4. 出锅
面向对象
  1. 五花肉备好
  2. 五花肉下锅
  3. 五花肉出锅

实际上,面向对象的编程思想,就是:当你以看待一个对象的角度看待一个问题的时候,一个对象会有很多的特征。就像造一辆自行车,你就把一辆自行车该有的特征都准备好,轮子、车架、车把、链条、脚蹬,找到这些东西,直接组装起来。而面向过程就要:要滑动就造轮子,要蹬自行车就造脚蹬,要传动就造链条,要支撑人再造一个车架车座,要控制方向再造一个车把,一步一步来。
从这个角度来看,面向对象可以更加直观的解决问题。

面向对象编程的四大特征-抽象、封装、继承、多态

面向对象的特征:抽象、封装、继承、多态。

抽象

就是对同一个事的共有的属性(特征)和方法(功能/行为)进行抽取、归纳、总结。如:汽车都有轮子、发动机等这些就是汽车的属性,汽车能跑、能载人载物等这些就是汽车的功能。这样就可以把汽车的这些功能与属性抽取出来写在一个类中,供汽车这一类事物使用。

封装

在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。

继承

特点:
  1. 继承要有一定的层次结构,还要具备一定的可传递性。
  2. 子类继承父类的属性和方法,但是私有属性和构造方法除外。
  3. 子类除了拥有从父类继承过来的属性和方法外,子类还可以拥有属于自己的属性和方法。
  4. 在java中只支持单一继承(也就说一个子类只能有一个父类,但一个父类可以有多个子类)。
  5. 判断两个类的继承关系是否成立,可以通过“is-a”判断。
  6. 子类不能继承父类的构造方法:构造方法是构造一个对象时必须调用的方法,名字也是和类名相同的。显然,子类不能继承父类的构造方法。
  7. 如何实现继承
    在java中通过extends关键字来实现继承,语法
    【访问修饰符】 class 子类 extends 父类{ }
继承的作用

提高代码的重用性

public的类和创建子类对象

一个.java源文件中可以包含多个类,但只能有一个类带public,而且带public访问修饰符的类的类名要和源文件的文件名相同,main方法也要写在带public的类中。
当创建子类对象时,那么一定会先执行父类的构造方法创建父类对象,然后在调用子类的构造方法创建子类的对象。而且在创建子类的对象时无论是调用有参数还是无参数的构造方法,JVM都会默认的代用父类的无参数的构造方法创建父类的对象。

多态

多态就是指同一种事物在不同的情况下的多种表现形式

多态的表现形式有:方法重写,方法重载,接口和接口的继承,类和类的继承
方法的重载:

在同一个类里面,相同的方法名,不同的参数,这就是方法的重载,参数的不同包括:参数的个数、类型、顺序的不同。
普通方法和构造方法都可重载,方法重载会根据传递的参数来决定调用哪个方法。
需要注意的是,返回类型的不同不构成重载,也就是和返回类型无关,只和参数有关。也就是相同的参数,不同的返回类型,不能构成重载。不同的参数,无关乎返回类型,都能构成重载。

方法的重写:

发生在子类继承父类的关系中,父类中的方法被子类继承,方法名、返回值类型、参数完全一样,但是方法体不一样那么说明父类中的该方法被子类重写了。

重写的目的:当父类中方法,无法满足子类的需求时,那么子类可以对父类的方法进行扩展
注意:方法重写子类的访问修饰符的范围不能缩小。为了防止出现在运行期多态的时候,父类的方法可以访问,而子类不可以访问这样的错误。
重写时访问修饰符变大又有什么好处呢?可以将父类中一些protected的方法重写为public方法,这样可以通过子类的引用调用这些方法。
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值