【6】java面向对象 继承 super this final 重载 重写 构造器

继承 本质是扩充 new时会先new父类再new子类
特殊场景 :资源同名 只要无法区分 就近原则 先找本类再找父类
静态全局变量 常量池中只有一份 后面覆盖前面的 常量池也会初始化
this表示自己 替换原则 表示调用的是自己的资源 从父类继承的也算
this只能调用普通方法
this.全局变量
this.本类的普通方法
super表示直接父类的资源
super.直接父类的全局变量
super.直接父类的普通方法
this和super是不允许在静态方法中使用的,因为静态方法有自己独立的内存空间,跟this和super的方法没有任何关系
总结:this和super一般用于同名情况下 区分你要调用的资源 是自己的还是父类的
this和super永远只到堆中和私有方法区中寻找资源,表示栈中的局部变量
继承的本质就是扩充 关键字 extends 一旦继承 拥有父类所有资源

final 终极
从继承的角度看 停止家族延续
ctrl+t查看族谱 查看类的继承结构
final修饰类
final修饰全局变量 叫做常量
一定要初始化
一经定义 永远不能被修改
一般使用ststic 关键字加在final一起 让当前的全局变量放在常量池中,全部保持一份
final可以修饰方法、类 、全局变量
被final修饰的类 就叫做太监类,不能被继承
被final修饰的方法不能被重写
被final修饰的全局变量叫做常量,必须要有初始值,不能被修改,通常和static一起用,使常量放在常量池
同包下可以不用导包,java.lang包下面类是不用导包的,直接用

重载 同名不同意
方法名相同,方法的参数个数、顺序、类型不同构成重载
在一个类中可以允许使用同一个方法名,同名方法构成重载
使用场景:同类下
表现形式:方法名相同,方法的参数顺序,参数个数,参数类型不同 与返回值无关
在一个类中,只能出现一个同名同义的方法 与返回值无关
重构快捷键:选中方法–>alt+shift+t 即Refactor–>Extract Mathod提取方法内容到一个方法中去

重写 把父类的方法重新定义 父类的方法还在
重写方法的签名一定要完全保持一致,包括返回值
使用场景:父子类
重写不代表覆盖,重写只是一种扩充
alt+shift+s override :重写快捷键

构造器也叫做构造方法,是一种特殊的方法
它要求和类名保持一致,没有返回值
new本质是一个运算符,用来执行构造方法
后面只能跟上构造器
目的是让jvm在堆中分配相应的内存
每个类都会有默认的构造方法,无参数的构造方法
如果自己定义了构造方法,就会把系统默认的构造方法覆盖掉(毁掉),毁掉之后我们必须得显示出来
构造方法的目的是配合new关键字使用,当new关键字后面接上构造方法,JVM帮助我们在堆里面分配相应的内存
构造方法初始化数据
可以把构造方法当作普通方法来看
构造方法不能被其他非构造方法嵌套,但是在构造方法中可以调用其他的普通方法
构造方法之间互相嵌套:
一定并且只能在第一行,因为它默认会有一个super
必须使用this或super互相调用

alt+shift+s->Generate getters and setters:创建get和set方法
source->format:格式化

猜你喜欢

转载自blog.csdn.net/tcbdbd/article/details/89131999