使用:当父类中的方法不能满足子类的需要。
方法的重写又称方法的覆盖,一般用于子类根据需要可以对父类中的方法进行重新编写
重写的前提是:必须在继承体系下,也就是必须存在继承关系
重载的前提是:同一个类中
1、方法名必须相同
2、参数列表必须相同
3、返回值类型相同或者是其子类
4、访问权限相同或不能严于父类
注意:
1、一般不会去改变返回值和访问权限
2、父类的私有方法不能被重写,重写的是可以被继承的方法
3、一般情况下,重写都是会存在一模一样的方法仅仅是方法体不一样。
4、只能重写继承来的方法
重载:同类同名不同参,与其他无关(同一个类中,方法名,参数列表不同--个数不同,类型不同,顺序不同)
重写:在子类和父类中存在,同名同参同返回值同访问修饰符的方法(返回值可以是其子类,访问修饰符不能比父类更严格)
简单来说就是一模一样。
Object类是所有类的父类;
Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
Object中常用方法介绍:
类的内容:一般的实体类中都必须包含以下内容:有参构造,无参构造,getset方法,toString() ;
toString()方法,它用于返回标识对象值的字符串。该方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址。
随处可见toString()的主要原因是:只要对象与一个字符串通过操作符“+”连接起来,java编译器就会自动地调用toString方法,以便获得这个对象的字符串描述。
一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可是引用类型呢?Person p = new Person();一个字符串加上这个p,你就不知道要怎么把这个p转换成字符串了,因为这个p是一个引用类型。
如果没有重写toString方法,那么输出来的默认的字符串内容是“类名+@+哈希编码”
任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法,通过这个方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。
重写toString方法
Objec的equals方法 定义为:x.equals(y),当x和y是同一个对象时返回true,否则返回false.
==比较的是简单数据类型,直接比较值。如1==2
如果使用Object中的equals方法,底层其实仍然在使用==比较,比较对象的时候,其实比较的是两个对象的内存的地址