今天学会了插入代码段~开心~
组合使用多个已有的对象组合为一个功能更加复杂强大的新对象。
重载 方法名称相同,参数类型或个数不同编译器视角: 方法签名=方法名称+参数类型+参数个数 组成唯一键
class StuManage {
public int getScore(){
return 3;
}
public int getScore(int i){
return i;
}
public int getScore(Integer i){
return i;
}
//可变参数,i实质上是数组int[]
public int getScore(int ... i){
return 3;
}
}
同一类中通常提供多个重载方法
覆写子类对父类的同名方法(方法名称相同,参数相同,返回类型相同)重新进行定义,即在子类中定义与父类中已定义的同名而内容不同的方法。
class Parent {
Number getScore(int a) {
return new Integer(7);
}
}
class Son extends Parent {
@Override //所有的覆写方法需注明
Number getScore(int b){
return new Integer(8);
}
}
public class RunSon{
public static void main(String args[]){
Son s = new Son();
System.out.println(s.getScore());
}
}
覆写需满足的条件:
子类的访问修饰符权限应等于或大于父类,不能变小
子类的返回类型能够向上转型成为父类的返回类型
异常也要能向上转型为父类的异常
方法名、参数类型及个数必须严格一致
注意: 覆写只能针对非静态、非final、非构造方法
在JDK中,很多父类的方法被子类重新覆盖,赋予了不同的含义,如Object类中的boolean equals(Object obj)方法
覆写与重载的区别:
覆写:方法名称相同,参数类型、个数一致,子类返回类型可向上转型到父类返回类型 (类族) 重载:方法名称相同,参数类型或个数不同 (同一个类)



