方法覆盖和方法重载

方法重载和方法覆盖的区别:
方法重载:Overload
方法覆盖:Override
两者本身一点关系都没有,仅仅只是因为名字很像。

方法重载:Overload
作用:解决了同一个类中,相同的功能方法名不同的问题,既然是相同的功能,那么方法的名字就应该相同
规则:(两同一不同)
同类中,方法名相同,方法参数列表不同(参数类型、参数个数、参数顺序)

方法覆盖:Override
作用:解决子类继承父类之后,可能父类的某一个方法不满足子类的具体特征,此时需要重新在子类中定义该方法,并重写方法体。

方法覆盖:当子类拓展了父类,可以获得父类的部分方法和成员变量。可是当父类的某个方法不适合子类本身的特征时,此时子类需要重新定义父类的方法,并重写方法体,这就叫方法覆盖(Override)

方法覆盖(override)
在类继承中,子类可以修改从父类继承来的行为,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的:名称、 返回类型、 参数列表。
方法覆盖的原则
覆盖方法必须和父类中被覆盖方法具有相同的方法名称、输入参数和返回值类型。
覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。
覆盖方法不能比父类中被覆盖方法抛出更多的异常

方法的重载
在同一个 Java 类中,如果出现了方法名称相同,而参数列表不同的情况就叫做重载(overload) 。
例如:
public void println(int i);
public void println(char c);
public void println(String s);
重载的方法必须有不同的参数列表
参数类型不同;
参数个数不同;

覆盖和重载比较

重载方法: 在一个类中用相同的名字创建多个方法(每个方法的参数表不同)

方法覆盖: 在一个类中创建的方法与父类中方法的名字、 返回类型和参数表相同,覆盖是针对两个类说的,而且必须是子类(或孙类,孙孙类等)覆盖掉父类的方法

构造器的重载
除了方法外,类的构造器也可以实现重载
类的构造器可以相互调用,调用方式是使用this关键字来实现

代码:

public class Employee {
    String name;
    int salary;
    public String getDetails() {
      return " Name: "+ name+ " \n "+ "Salary: "+ salary;
    }
}
public class Manager extends Employee {
     String department;
/**
* 方法的覆盖
*/
     public String getDetails() {
        return " Name: "+ name+ " \n "+ " Manager of "+department;
}
     public void test()
 {
 //调用父类的方法,怎么办?
       System.out.println(super.getDetails());
 }
     public static void main(String []args){
        Manager m=new Manager();
        System.out.println( m.getDetails());
   }
}

参考博客:
http://blog.csdn.net/jxiao_11/article/details/51324503

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值