java基础知识大杂烩(2)

不定参数 (…)

     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.

原文地址:https://www.cnblogs.com/yzdqxing/p/3897274.html