java基础(十六)面向对象详解

面向对象

面向过程思想:步骤清晰简单,第一步做什么,第二步做什么;处理较为简单的问题。
面向对象思想:物以类聚,分类的思维模式,思考问题首先解决问题会需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向对象的思索。
适合处理复杂的问题,适合处理需要多人协作的问题。
OOP(Object Oriented Programming)
面向对象编程的本质:以类的方式组织代码,以对象的组织(封装)数据。

三大特性:封装,继承,多态。抽象

1.静态与非静态方法对比

在这里插入图片描述在这里插入图片描述

2.类与对象的创建

在这里插入图片描述

3.构造器

1.和类名相同
2.没有返回值
作用:
1.new本质在调用构造方法
2.初始化对象的值
注意点:定义了有参构造,如果想使用无参构造,显示的定义一个无参的构造

在这里插入图片描述

4.封装

在这里插入图片描述
特点:

1.封装的意义 提高安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护增加

在这里插入图片描述

5.继承:所有的类 都默认直接或间接继承object类

在这里插入图片描述

6.super用法

在这里插入图片描述
在这里插入图片描述

7.super和this的区别

super:
super调用父类的构造方法,必须在构造方法的第一个
super必须只能出现在子类的方法或者构造方法中!
super和this 不能同时调用构造方法!
this:
代表的对象不同:
this:本身调用者这个对象
super:代表父类 对象的应用

this:没有继承也可以使用
super:只能在继承条件才可以使用
构造方法
this() ;本类的构造
super():父类的构造!

在这里插入图片描述

8.方法重写

重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同.
3.修饰符:范围可以扩大但不能缩小: public>Protected>Default>private
4.抛出的异常:范围,可以被缩小,但不能扩大: ClassNotFoundException --> Exception(大)
重写,子类的方法和父类必要一致: 方法体不同!
为什么需要重写:
1.父类的功能,子类不一定需要, 或者不一定满足!

在这里插入图片描述
在这里插入图片描述

9.多态

1.多态是方法的多态,属性没有多态

2.父类和子类,有联系 类型转换异常!ClassCastException!

3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();

这些方法不能被重写
不符合多态:static 方法,属于类,不属于实例;
final常量;
private方法。:私有方法

在这里插入图片描述

10.instanceof和类型转换

类型转化:父子之间,子类转换为父类,可能丢失自己本来的一些方法!

父类引用指向子类的对象;向上转型(子类转父类),向下(父类转子类),强制转换;方便方法的调用,减少重复的代码。

在这里插入图片描述

11.static关键字

static关键字一句话:方便在没有创建对象的情况下进行调用。
被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。

12.抽象类

1.abstract关键字,可修饰抽象方法、抽象类。

2.抽象类:类的抽象,可没有抽象方法,但有抽象方法的类一定要声明为抽象类。
3.抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象。
4.抽象类存在的意义:更利于代码的维护和重用,提高开发效率。
5.编译器给抽象类添加了一个无参构造方法。

12.接口的定义与实现

1.接口最能体现oop的精髓,对 对象 的抽象。

2.在Java编程语言中是一个抽象类型,是抽象对象的集合,对象通常以interface关键字来声明。

3.普通类:只有具体实现

4.抽象类:具体实现和规范(抽象方法)共存

5.接口:只有规范,无法自己实现

6.约束和实现分离->面向接口编程

7.接口就是规范,定义一组规则,它的本质是契约,制定好之后大家都要遵守。

特性

接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
接口中的方法都是公有的。
类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。

在实现接口的时候,也要注意一些规则:

一个类只能继承一个类,但是能实现多个接口。 一个接口能继承另一个接口,这和类之间的继承比较相似。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值