第九天日常更新---权限修饰符

今天还是回顾一些基础的东西,加深一下自己的印象

权限修饰符

,它们分为四个权限.
一.private
private只能在本类中被访问。在其他类中是不能被访问的。
二.default
default只能在本包中被访问。
三.protected
protected能被该类的子类所访问(子类可以和父类不在一个包中)也可以被本包中其他类访问。
四.public
public是访问权限最高的修饰符,可以在不同包,不同类中被访问。
在这里插入图片描述
在这里要注意就是以上权限修饰符只能修饰成员(static),成员修饰符(成员变量|成员方法).
private的内容是不能被继承的
只有public和default 能修饰类,并且default 是默认出现的.
protect的访问权限:
1.同包下的类
2.不同包的子类,并且只能通过父类关系访问,只有子类中才可以使用.

重写

说道重写就很有可能与重载混淆.首先它们都是指方法.
重载:
1.同一个类中有多个方法,
2.方法的名字相同.
3.参数列表不同|方法签名不同
重写
1.不同的类,
2.继承关系|实现关系.
3.方法签名相同(方法名+参数列表)
如果存在方法的重写,在调用的时候是子类中重写的方法.
那平时该怎么检查方法的重写呢?
1.右边会有一个向上的三角
2.强制检查@override.

条件是以下三种情况
1.== 方法签名必须相等
2.<= 返回值类型,基本数据类型完全相等.引用数据类型:子类<=父类
3.>= 权限修饰符:子类>=父类的权限修饰符

不能被重写的3中情况
1.被private修饰的方法是不能被重写的
2.被final修饰的方法不能被重写
3.被static修饰的方法也不能被重写.

如果子父类中的同名方法,父类中是静态的,子类中的同名方法要求也是要被static修饰.
静态的方法可以被继承但是不能被重写.

super

super和this比较相似
this:指代当前new的对象
super:指代父类对象
super用在构造器的首行调用父类中的构造器
super(参数列表),
必须放在首行,如果没有显示定义就默认调用父类空构造器.
super区分子父类中同名的成员,如果不存在同名问题,可以省略.如果存在同名问题且要调用父类成员,使用super表示父类对象,否则就默认子类(就近原则).
创建对象的原则是先父类后子类的原则.

final(最终的)

final修饰变量为常量
final修饰的方法是不能被重写的
final修饰的类是不能被继承的(太监类).
final修饰的是引用数据类型,对象的地址不能变,但是可以改变对象的成员.

object类(老祖宗类)

object是Java中所有类的根基类
Java中的所有类都会直接或者间接的继承object类.

to String方法
当打印一个对象的引用时候,默认调用对象的toString()
当打印一个对象其实是想要看对象的所有属性的值
重写toString()方法,自定义输出对象属性的内容,实现打印对象的属性值.
不打印地址,默认打印的对象的地址,因为默认调用object类型的toString.

equals和==的区别
==是比较对象的地址是否相同
equals如果没有重写默认调用object类中equals方法比较的是地址,但是可以重写,自定义比较规则,按照内容比较对象是否相同

多态

多态是一种事物的多种形态,多种表现形式.
多态的前提
1.类的前提
2.接口的实现
多态的最终体现
父类的引用指向子类的对象
多态的目的
父类的引用在如果调用了父类都有的方法,调用的是子类中重写的方法
子类的新增方法对父类引用不可见
多态使用成员:
成员变量: 编译运行看父类
成员方法: 编译看父类|类型|左边,运行看子类|找对象|右边

猜你喜欢

转载自blog.csdn.net/weixin_45116848/article/details/90757209