不定参数 (…)
double add(int a, int b, double... m)
double sum=a+b;
for(int i=0;i<m.length;i++)
sum=sum+m[i];
return sum;
}
不定参数是为了方便参数数量不确定的情况,以提高方法签名的高度兼容性。
m最终将会被理解为 double[],
一个方法签名的不定参数只能有一个,而且是最后一个。
多态 (polymorphism)
1、多态三要素
1) 在继承环境下,子类重写父类方法。
2) 通过父类引用变量指向子类对象。
3) 恰好通过父类引用变量调用的是被重写的方法。
在此情况下,将发生多态效应,从常态来说,通过父类引用变量指向子类对象,该引用变量只能看到子类对象中的父类部分,不可能调用到子类方法。但是由于这里存在重写,通过父类引用变量向子类对象发送信号的时候,该方法调用信号由于和子类重写方法签名是完全一致,结果调用子类的该重写方法,对于方法的主调者来说,其并不知道会产生这个结果,纯属意外。
2、多态的用途
为今后编程框架代码提供了可能,适合用来编写通过底层代码。
*重写方法不能抛出比父类方法更多的异常,可以少抛出,但不可多抛出!
*重写方法不能在访问修饰符上比父类方法严格,可以放松要求,但不能提高访问限制。
*父类是private , 子类可以是public,
*父类是public , 子类不能是private.