java009封装,继承和super关键字

一,参数的传递:
两个传递方式就像是两种相亲方式,值传递就像是你把照片给对方发过去,即使她看了说你丑矮没品位,穿衣low,你也不知道,对你造不出成任何影响,而引用传递就是你本人去相亲,她说你丑矮没品位啥的都对你心里造成暴击伤害,判断依据就是你在类中修改参数值会不会对输出造成影响
**1,基本数据类型以及对应封装类还有String参数是靠值传递的。
###String字符串类是一个不可变的类,每次对它的修改都会重新开辟一个空间来存储新值,不会在原有的对象上直接改

在这里插入图片描述

2,其它的类类型,Date,数组是靠引用传递**
在这里插入图片描述
二,面向对象的三大特征
1,封装
2,继承
3,多态
一,封装:隐藏复杂的实现过程,对外暴露简单的使用方式
封装的作用:
1:保护数据:防止该类的代码和数据被外部类定义的代码随机访问。如果不对数据进行保护,就会有这种情况,输入的年龄不合法也会输出来,不符合逻辑
在这里插入图片描述

但是如果将 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏,从而保护数据。
用private(访问修饰符)它修饰的属性只能在本类中使用,提供get和set方法以供外界访问,达到属性私有化的目的。

在这里插入图片描述

2:提高重用性
把一个类中代码重复的部分封装起来,避免浪费内存
例如将十进制转化为二进制,八进制,十六进制,代码有好多都是重复的,需要将其封装起来
在这里插入图片描述

3:隔离变化

二,继承:
子承父业,子类继承父类的产业,让子类拥有父类的所有东西
把子类重复的代码上提,就会出现父类 。黑猫,白猫,橘猫,噬元兽,花猫,提出他们的共性,猫就是他们的父类。
继承格式:

public class 子类类名 extends 父类类名{
}

在这里插入图片描述
name会报错是因为name是父类私有的,虽然被继承了,但是无法输出,去掉private就好了

1, 思考:java中任何类和任何类之间都能随意继承吗?
语法没错,但是逻辑是有问题
2,规律:把什么当成什么,xxx is a xxx关系
小黄狗和狗之间能继承:小黄狗是一个狗
显像管和电视机不能继承:显像管是一个电视机
儿子和爸爸能不能继承(特殊衡量):儿子是一个爸爸
3,是先有子类还是先有父类?
Java中是先有子类的,子类的共性就是父类
4,继承的作用:
提高代码的复用性
继承是多态的前提(后续讲)
5, 继承的特点
a:java中只支持单继承:在不同的场合只能认一个爸爸,一次一个
b:java中支持多重继承:但是不同场合可以认多个爸爸,多次多个
c:子类继承父类后,子类可以全盘接收父类的所有东西(甚至那些private的数据),只是不能直接访问,但可以通过共有的访问方式在里面去调用
d:唯独构造器是子类永远不能继承的
6,方法重载:在同一个类中,出现了相同的方法名,不相同的参数列表,就构成方法重载,跟返回值类型无关,跟修饰词无关
方法重写:在不同类中,出现了相同的方法名,相同的参数列表(1:类型相同2: 个数相同,3:顺序相同),还有相同的返回值类型,这就构成了方法重写,也叫方法覆盖
方法重写注意点:
1:子类重写父类方法时,访问修饰符不能别父类更严格,不能父类是public,子类是private
2:不能抛出比父类更多的异常

7,类的实例化过程,类的加载顺序

类的加载,父类优先,父类里面静态优先,下来是子类静态优先,下来是父类的构造代码块,父类构造器,下来才是子类构造代码块,子类构造器
三,Super关键字
1,Super代表父类对象,可以调用父类属性和方法
2,在子类构造器的第一句调用父类的无参构造器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值