重载和重写

重写(overwrite)
1. 为什么需要方法的重写:
子类在继承父类以后,就获取父类中的所有方法。但是,父类中的方法不适合于子类,子类需要对父类中继承过来的方法进行覆盖、重写
2.何为方法的重写?
子类需要对父类中继承过来的方法进行覆盖、重写
3.方法重写遵循的得规则
>具体规则:
父类被重写的方法与子类重写的方法的方法名和形参列表必须相同。
子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符
子类不能重写父类中声明为private权限修饰的方法。
3)关于返回值类型:
父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型必须是void
父类被重写的方法的返回值类型是基本数据类型,则子类重写的方法的返回值类型必须与被重写的方法的返回值类型相同.
父类被重写的方法的返回值类型是引用数据类型(比如类),则子类重写的方法的返回值类型可以与被重写的方法的返回值类型相同 或 是被重写的方法的返回值类型

public class Text {
    private int a;
    public String b;
     public void text1(String b){
         this.b=b;                                                      (this关键字http://t.csdn.cn/mVV52)
     }
}
class T1 extends Text{
@Override
       public void text1(String b) {
       System.out.println(b);
      }
}

4)子类重写方法抛出的异常类型可以与父类被重写方法的异常类型相同,或者是父类被重写方法的异常类型的子类

重载

两同一不同: 

两同:同一个类,相同的方法名

不同:参数列表不同a.参数个数不同b.参数类型不同

public void add(int i ,int j){}
public void add(int i ,int j,int k){}

注意:方法的重载与形参名,权限修饰符,返回值类型都没关系
如何判定两个方法是相同的的?方法名相同,且形参列表相同。(形参列表相同是指参数个数和类型相同,与参数名无关)
要求:在一个类中,允许存在多个相同名字的方法,只要他们的形参列表不同即可.
编译器是如何确定调用的某个具体的方法呢? 先通过方法名确定了一波重载的方法,进而通过不同的形参列表,确定具体的某一个方法

你可能感兴趣的:(java,jvm,开发语言)