【Java 类,继承,封装,多态】

什么是面向对象

面向对象编程(Object-Oriented Programming,OOP)
面向对象编程的本质就是
以类的方式组织代码,以对象的形式封装数据

从认识角度考虑是先有对象后有类。对象是具体的事物。类是抽象的,是对象的抽象
从代码运行角度考虑是现有类后又对象。类是对象的模板。

抽象

类的特性

  1. 封装
  2. 继承
  3. 多态

创建与初始化对象

注意一个项目应该只有一个main方法
在这里插入图片描述

构造器

类中的构造器也称构造方法,是在进行创建类的时候必须调用的。并且构造器有以下两个特点:

  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void
    作用
    可以设置初始值在这里插入图片描述
    使用new关键字,本质上是在调用构造器
    在这里插入图片描述
    如果既有无参构造器,又有有参构造器,那么Java会自己判断进入哪个构造器
    构造器快捷键:alt+insert
    注意点:如果有了有参构造器,而没有写上无参构造器,进行无参构造会报错!!

封装

程序要求:“高内聚,低耦合”。高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
属性私有,get/set方法调用
set方法一般有安全性判断
快捷键:Alt+insert
在这里插入图片描述
意义:

  1. 提高程序的安全性,保护数据;(不合法数据)
  2. 隐藏代码实现的细节
  3. 统一接口
  4. 系统可维护性增加

继承

继承的本质是对一批类的抽象。
extend的意思是“扩展”。子类是父类的扩展。
Java中只有单继承
在这里插入图片描述
虽然设置属性是私有的,但可以设置一些公有的方法来返回,修改属性值。
快捷键:Ctrl+h 快速查看子类父类关系树。

super & this

在这里插入图片描述
private不能被继承
在这里插入图片描述
这说明在Students构造器中有隐藏的代码
super();//这个必须在首行
而this();也必须在第一行才行,不然也会报错。所以要么调用子类,要么调用父类
如果父类没有无参构造,那么子类也没有,因为子类默认会有隐藏的super();当然一定要调用也是可以的,只需调用父类的有参即可super(参数);

super注意点

  • super调用父类的构造方法,必须在构造方法的首行
  • super必须只能出现在类的方法或者构造方法中
  • super和this不能同时调用构造方法
    super Vs this
  • 代表的对象不同
    • this:本身调用的对象
    • super:代表父类对象的应用
  • 前提
    • this:没有继承也可以使用
    • super:只能在继承条件下才可以使用
  • 构造方法
    • this(); 本类的构造
    • super(); 父类的构造

多态

即同一方法可以根据发送对象的不同而采取多种不同的行为方式。
一个对象的实际类型是确定的,饭可以指向对象的引用类型有很多。
多态存在的条件:

  • 有继承关系
  • 子类重写父类
  • 父类引用指向子类对象
    在这里插入图片描述
    多态注意点
  1. 多态是方法的多态,属性没有多态
  2. 父类和子类,有联系 类型转换异常!ClassCastException!
  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f1 = new Son();
    无法重写的:
  • static 方法,属于类,不属于实例
  • final 常量
  • private 方法

instanceof
A instanceof B 返回True/False
A与B是否有关系

今日总结就是这些啦!!!
每天都要开心,没准下一秒有伤心事,趁现在没有自然要开心点!(๑>؂<๑)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌桔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值