08 继承,方法重载与重写,this与super比较,final关键字,static关键字

一、继承

1.继承时面向对象的一个重要特征
  他是从已知类中产生新的类的方式,新的类拥有已知类的所有属性和功能,并可以有自已新增的功能和属性
2.可以提高程序的复用性

1 实现方式

1.关键字extends
2.Java只支持单继承,一个子类只能有一个父类,但一个父类可以拥有多个子类
3.继承可传递性,父类从爷爷类所继承的方法,子类同样会继承
4.被private修饰的资源,子类同样会继承,不能调用是由于被访问限制符pivate限制了。
5.子类可以有自己特有的功能
6.继承是种is-a的关系,强耦合 

2 继承中的变量使用

1.父类的成员变量和子类中的变量不重名是时直接使用
2.子类会继承父类的所有成员变量(包括static)  
3.父类的成员变量和子类中的变量重名是,用super.变量名指定
3.静态变量在类被导入是就执行了

3 继承中的构造方法

1.子类对象在被构造时,会自动触发父类默认的无参构造
	原因是子类的构造方法中存在一个super();--作用是调用父类构造方法
2.当父类中没有无参构造时,需要手动添加super(参数);在构造方法中的第一行,不然会报错
3.构造方法不会被子类继承,(子类唯一没有继承的资源),原因是语法上要求构造方法的名字要与类名一致;
4.this调用本类构造方法和super调用父类构造方法不允许出现在同一构造方法中,他们都要求在第一行

4 继承中的普通方法

1.子类会继承父类所有的普通方法,
2.子类可以有自已独特的方法
3.子类可以重写父类方法

二、方法的重载和重写

1 重写

概念:子类在继承父类方式时,可以根据要求重写父类中的普通方法,即是子类重写父类方法。
重写方法遵守2同,2小,一大原则

  1. 2同:同方法名,同参数列表
  2. 2小:返回类型的类是被重写方法的返回值的本类及子孙类,抛出异常类型是被重写方法抛出异常的本类及子孙类
  3. 1大:被访问范围大于等于父类

1 重载(overloading)

1.1定义

在一个类的内部,存在多个方法,拥有相同的方法名,不同的参数列表的现象称之为重载。

1.2作用

提高程序调用的灵活性,不论输入的参数类型如何变化,都会有合适的方法被调用。

1.3注意:

1.参数列表不同指包括参数类型的数量,以及参数类型的位置不同。
2.参数列表不同不包括参数名的不同
3.返回值的类型的差异区别不同方法(及不会发生重载)

1.4 重载与重写

1.重载(overloading):发生在本类中,是方法名相同而参数不同的现象
2.重写(overriding):发生在继承关系中,子类不满足于父类的功能,重新编辑方法功能的现象,方法名和参数列表相同,返回值遵守小,访问限制遵循一大的现象
3.重载的意义:提高了程序的灵活性
4.重写的意义:在不修改源码的情况写进行功能的修改与拓展(类似OCP原则:面向修改关闭,面向拓展开放)

三、this与super

1.this是本类的引用(地址变量),相当于 Cat this = new Cat();
super是父类对象的引用(地址变量),相当于Father super = new Father();
2.本类的成员变量和局部变量同名时,this.变量名表示成员变量
父类的成员变量与子类变量同名时,super.变量名表示父类成员变量
3.this可以调用本类的构造方法
super可以调用父类的构造方法
4.注意:super使用必须是发生继承
5.注意:this和super调用构造方法时,都要放在构造方法的第一行。
6.注意:如果父类发生没有无参构造时,必须手动添加super(参数)构造方法
7.注意:子类发生方法重写时,可以通过super.方法名调用父类方法。

四、final关键字

1.final关键字修饰的类不可被继承
2.final关键字修饰的方法不可被重写
3.final关键字修饰量是常量,不能被赋值,所以一定要复制

五、static关键字

1部分特定

1.被static修饰的资源是静态资源(又称类资源)
2.随着类的加载而加载,并且只加载一次
3.加载的顺序是按照书写的顺序加在的
4.静态资源可以直接通过类名调用
5.所有对象公用相同的静态资源
6.static只能修饰成员变量及方法不能修饰类、方法内的局部变量和代码块

2静态资源与普通方法

静态方法只能调用静态资源、

3静态代码块

1.位置:方法外类内
2.执行时间:(创建对象时就会触动静态代码)静态代码块是静态资源,随着类的加载而加载,优先于对象加载,并且只加载一次
3.作用:用于加载那些需要第一时间加载,并且只需要加载一次 的资源,常用来初始化

4在新建对象是类的加载顺序

  1. 父类静态代码块
  2. 子类静态代码块
  3. 父类构造代码块
  4. 父类构造方法
  5. 子类构造代码块
  6. 子类构造方法
  7. 普通方法
  8. 局部代码块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

麻辣麻虾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值