方法重写

方法重写overriding
1.方法名相同
2.参数列表相同
3.返回值类型相同或者是其子类
Son extends Father
public Father m1(){
}
public Son m1(){
}
4.访问权限不能严于父类
子类方法重写不可以比父类方法访问权限小,可以扩大方法的访问权限
5.父类的静态方法不能被子类重写为非静态方法
6.父类的非静态方法不能子类重写为静态方法
7.子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法
8.父类私有的方法不能被子类覆盖
9.子类不能抛出比父类更多的异常

方法重写和方法重载:
方法重载:在同一个类中 方法名相同,参数列表不同 与返回值 和访问修饰符无关
方法重写:在父子类中 方法名相同 参数列表相同 返回值相同或者是其子类 访问修饰符子类不能比父类严格

构造方法不能被重写

Object 是所有类的直接或间接父类
Object被子类经常重写的方法:
1.toString()
返回对象本身(在内存中)的相关信息,按字符串对象返回
想要显示具体信息,操作如下
class
public String toString(){//overriding
return this.name
}
main
System.out.print(s1.toString());
//System.out.print(s1);//toString 可省去
//上两句代码作用相同,输出一个对象时,等于调用了他的toString() 如果不overriding的话 输出的就是内存地址
2.equals()
比较两个对象是否是同一个对象 是则返回true
操作符==
用于简单数据类型,直接比较值
用于引用数据类型,比较两者是否为同一对象
Object类equals()方法与==没区别(引用类型)
当有特殊需求时,如认为属性相同即为同一对象,需要重写equals()
3.hashCode(可理解为一种算法)
返回对象的哈希代码值
4.getClass(反射里用的到)
获取当前对象所属的类信息,返回class信息

判断某一个对象是不是某个类型:
对象 instanceof 类型

基本数据类型 的比较:
1.基本数据类型
只能用==,直接看值 (点不出equals)
2.基本数据类型转成包装类对象,
1)可以用== ,此时比较是否为同一对象,
看值一不一样,再看是不是new过了 ,new过了的就是两个对象,哪怕值一样也是两个对象,没有new过的话,值一样,就是同一个对象(限128以内)。

2)也可以用equals,此时比较内容是否一模一样。

引用类型的比较:
== 和 equals
1)==的比较 ,此时比较是否为同一对象,比较地址
看值一不一样,再看是不是new过了 ,new过了的就是两个对象,哪怕值一样也是两个对象,没有new过的话,值一样,就是同一个对象。
2)equals的比较,此时比较内容是否一模一样

对于引用类型来说,==进行的是地址值的比较
双引号直接写的字符串在常量池当中,new的不在池当中

Java.lang.String (悄悄)重写了equals()方法,把equals()方法的判断变为判断其值
还会重写toString方法 把toString的判断变为其内容
String 很特殊

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值