欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

方法重载和方法重载的区别以及方法重写的原理

程序员文章站 2024-03-16 22:21:52
...

一、重写和重载

  
 

1、重载(overload):

方法重载是指同一个类中的多个方法具有相同的名字

方法名 相同
参数列表 不同
返回类型 可以相同也可以不相同
  无法以返回型别作为重载函数的区分标准
  重载是发生在编译时的,因为编译器可以 根据参数的类型来选择使用那个方法

 
 
 
 

2、重写(override):

方法重写是存在子父类之间的

方法名 相同
参数列表 相同
返回值类型 可以相同也可以是原类型的子类型
访问性 比父类被重写方法更好访问
异常 不能比父类被重写方法声明更多的异常(里氏代换原则)
final final修饰的方法不能重写
prvate private修饰的不能重写
static static修饰的不能重写
  抽象类接口的方法必须要重写
  重写发生在运行时,因为编译期编译器不知道并且没办法确定该去调用哪个方法,JVM会在代码运行的时候做出决定。

 
 
 
 

3、重载和重写的不同:

  重载 重写
使用条件 同一类 继承关系,子类中
参数列表 不同 相同
返回类型 可同可不同 可以相同也可以是原类型的子类型
访问权限 无要求 有特殊要求,见规则
次数限制 重载多次 父类方法只能被子类重写一次
作用时间 编译期 运行期

 
 
 
 

二、方法重写的原理

class Shape{
    void getArea(){//面积
       System.out.println("长*宽");
    }
    void  getCir(){//周长
     
    }
}

class Circle extends Shape{
   @Override
   void getArea(){
      System.out.println("长*宽");
}


class TestDemo{
   public static void main (String[] args){
   Circle circle = new Circle();
   circle.getArea();
   }
}   

方法重载和方法重载的区别以及方法重写的原理
方法重写的原理:方法区中的地址覆盖

相关标签: java