1.什么是面向对象
对象:就是将现实的事物以及问题抽象化,给它命名为对象
面向对象:
就是把现实的事物抽象为"对象".每个对象都是唯一的,拥有它的属性和行为.我们可以通过调用这些对象的方法和属性去解决问题,实现需要.
例如:需求:使用微信app聊天
第一步:开打手机
第二步:打开微信app
第三步:开始聊天
这个事件中手机可以作为一个对象,微信也可以作为一个对象
手机有这些功能:使用微信
微信有这些功能:发送文字.发送语音
可以看出来每个对象都是独立的,而且拥有它自己的功能,每个部分只需要完成自己的功能一步一步串联在一起来实现整个需求.
2.面向对象的基本特征:封装.继承.多态
封装:
1)基本概念:
介于每个功能都是独立的,但是彼此都有练习,所以在系统之内可以将一部分信息隐藏,让系统间各部分减少联系,把一部分代码装起来,防止被外界更改,可以认为是一个保护屏障
2)四种访问控制级别:
public>protected>默认>private
3)封装实例:
半自动洗衣机接口有以下方法
①开机
②关机
③放水
④定时
⑤洗涤
⑥排水
⑦脱水
全自动洗衣机有以下方法
①开机
②关机
③设置洗衣机模式
④开始洗衣服,洗完自动关
对比来看,我们就会发现,自动洗衣机把放水、定时、洗涤、排水、脱水等细节,封装到了③设置洗衣机模式里,这样为使用者提供了更加简单易用的接口,所以自动洗衣机会更加方便
继承:
1)基本概念:
继承原有的功能,增加自己新的功能,实现了拓展和复用
2)继承中的关键字:extends、super 、this、final
1、extends:单一继承,可以让一个类继承一个父类
2、super:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
3、this:指向自己的引用。引用自身的属性和方法。
4、final:当用final修饰类时,是把类定义为不能继承的,即最终类;
用于修饰方法时,该方法不能被子类重写:
用于修饰属性时,和static一起使用,表明为一个常量,各类的所有对象共用一个值
3)类和接口
- 1.类与类之间是单继承的,直接父类只有一个
- 2.类与接口之间是多实现的,一个类可以有多个接口
- 3.接口与接口之间是多继承的
多态:
多态指同一个实体同时具有多种形式。同字面意思,及一个对象在不同的情况下会有不同的体现
1、重写(Override)
重写是子类对父类允许访问的方法进行重写, 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类
访问权限不能比父类中被重写的方法的访问权限更低
重写方法抛出的异常范围不能大于父类。异常也有继承关系,所以子类能抛出的异常不能高于父类
构造方法不能被重写。
如果不能继承一个类,则不能重写该类的方法。
2、重载(Overload)
重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
3、方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。
(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载
(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写
(3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。