首页 > 编程知识 正文

方法重写和重载的区别简答题,没有找到合适的方法重写

时间:2023-05-04 00:05:10 阅读:184275 作者:750

方法重写:
方法的重写(覆盖) override 子类和父类有同名方法
方法的重载 overload 在一个类中 有同名方法
方法重写的现象:

父类有的方法,子类没有,子类直接继承使用父类没有 ,子类特有 ,只能子类对象自己调用。父类和子类都有某个方法 ,比如 show ,这就叫子类重写了父类的方法,简称方法重写,此时,子类对象调用的是子类中定义的方法。

方法重写需满足:
1. 父类中的方法 和 子类中的方法
2. 方法名必须一致
3. 方法参数必须一致
4.子类的方法的访问修饰符不能缩小访问权限
5.返回值类型要一致(子类的返回值类型 也可以是 父类的返回值类型的子类)
Object
Object 是所有类的顶级类 意味着其他类的对象都可以调用Object中定义的,可以被继承的方法。

toString() return getClass().getName() + "@" + Integer.toHexString(hashCode());System.out.println(obj); 会调用 obj 的 toString 方法 打印返回的字符串

后面写javabean一般都会重写 Object 的 toString 方法。

boolean equals(Object obj) 判断两个对象的内容是否相等,如果两个对象的内容一样,就认为是同一个对象。

int hashCode() 返回对象的哈希吗 一个 int 类型的数值

Class getClass() ; 返回类的 字节码对象 反射的时候要用

void wait(long time) 等待 多线程的时候讲
… wait 重载的wait
notify() 唤醒一个线程
notifyAll() 唤醒所有线程

---------------以上都是 public

finalized() 垃圾回收器相关的方法
clone() 克隆

---------------- 这俩 是 protected

private static native void registerNatives();
native 本地的 native 修饰的方法,都没有方法体,因为 java 自身实现不了 ,java无法直接访问操作系统底层 ,为此 java 使用 native 来扩展java 的 功能,可以将native 修饰的方法,理解成 java 程序调C程序的接口。

equals 方法是 Object 类中 定义的 比较 两个对象的内容是否相等
boolean equals(Object obj)

equals
equals 和 = = 二者都有比较是否相等的含义
对比二者:
== 比较的是栈内存中的数据,操作数可以是基本类型也可以是引用类型,如果是基本类型,比较的就是基本类型数据的值 ,如果是引用类型比较的是引用变量所引用的对象的内存地址值。其实,比较的就是变量的值是否相等。

boolean equals(Object obj) 但是Object的实现是 return this == obj; 这行代码比较的还是引用变量的值,即内存地址值,而不是对象的内容,所以,自定义的类,一定要重写equals 方法来比较对象的内容。这里比较对象的内容指的就是比较对象的属性值, 如果两个对象的属性值完全一样,就认为这两个对象是相等的, 或者是同一个对象,使用 equals 比较,一样就返回 true, 否则返回false。
JDK 中重写了 Object 的 equals 方法的还有 Date Double Integer String 等等
super

super是直接对父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。 普通方法: 没有顺序限制。可以随便调用。构造函数中: 任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(...);那么Java默认都会调用super();作为父类的初始化函数。 所以你这里的super();加不加都无所谓。

父子类环境下构造方法的执行顺序:

创建子类对象必然会调用父类的构造方法和子类的构造方法。在子类的构造方法中,第一条语句默认是 super() , 意思是调用父类的无参构造。如果父类没有无参构造,也可以使用 super 调用有参构造。总之一句话,在调用子类构造方法时,要调用父类的构造方法完成父类数据的初始化。构造方法的第一句代码,要么是 super, 要么是 this ,super 表示调用父类的构造方法。this是 表示调用子类的构造方法 ,都是为了初始化对象。二者不可能同时存在 ,因为一个对象只能被初始化一次。建议每个类都提供无参构造。

杂记

给类的属性起名一定要规范 如果不规范,生成的get、set方法也不规范(例如变量首字母大写,命名不规范,则生成构造方法会只有一个含有this)this 和 super用法基本一致,this指向了子类数据,super指向了父类数据打印一个对象相当于打印这个对象的tostring方法比较字符串用equals来比子类类型可以自动向父类类型转换方法的重写 override
方法重写发生在父子类中,当有子类有此方法时,调用的时子类的。子类重写子类方法,是扩展了父类方法哈希值 一个int类型的数值 可以看做内存中的地址值Class getClass(); 返回类的字节码对象,反射的时候用。ctrl+Shift+t OpenType(打开类) 去查找类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。