覆写变长方法
public class Client {
public static void main(String[] args) {
// 向上转型
Base base = new Sub();
base.fun(100, 50);
// 不转型
Sub sub = new Sub();
sub.fun(100, 50);
}
}
// 基类
class Base{
void fun(int price,int... discounts){
System.out.println("Base......fun");
}
}
// 子类,覆写父类方法
class Sub extends Base{
@Override
void fun(int price,int[] discounts){
System.out.println("Sub......fun");
}
}
觉得上面的代码有什么错误吗。
其实是会报错的:但不是覆写的错误,@Override在这里是正确的,错误是在sub.fun(100, 50);,子类调用的时候会发现50只是一个int 不是int[],直接编译报错,所以父类能调用的方法,子类不一定能同样调用,呵呵。
分享到:
相关推荐
简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理, 即方法的重载——有不同的参数列表(静态多态性) 而当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要...
行业分类-设备装置-一种数据覆写方法
主要介绍了Java的覆写操作,结合实例形式分析了java属性覆写及super调用父类方法覆写相关操作技巧,需要的朋友可以参考下
《编写高质量代码:改善java程序的151个建议》一共12章,第1~3章针对java语法本身提出了51条建议,例如覆写变长方法时应该注意哪些事项、final修饰的常量不要在运行期修改、匿名类的构造函数特殊在什么地方等;...
/**一个类实现了两个接口,两个接口中的方法相同,这个类在覆写的时候就会出现冲突*/ class D: B,C{ //当下面两个方法同时存在的时候,就会报方法相同的冲突 override fun x(): Int { return super
《编写高质量代码:改善java程序的151个建议》一共12章,第1~3章针对java语法本身提出了51条建议,例如覆写变长方法时应该注意哪些事项、final修饰的常量不要在运行期修改、匿名类的构造函数特殊在什么地方等;...
以下页面在运行中,调试输出的永远是alter('1'),原因是按照页面加载从上至下的顺序,同名的方法以最后一个为准.
DJ不仅是一个JAVA反汇编器,而且是一个全功能的有着语法高亮的带用户界面的JAVA编辑器。 使用DJ Java Decompiler你还可以反编译一次性反编译多个class文件。 安装路径,如:C:/Program Files/decomp。然后将该...
要引用一个类而不是对象的方法,可以使用 ::(两个冒号),而不是 ->。 所以, parent::__construct() 以为着调用父类的 __construct() 方法。 修改上篇《使用类继承解决代码重复等问题》中的代
很多同学会重载和重写分不清楚,这篇文章主要介绍了详解java重载与覆写的区别,有需要的朋友可以了解一下。
主要介绍了Java重写equals及hashcode方法流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Object类在Java里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较...
覆写
抽象类使的是extends关键字,表示一个类只能继承一个父类,但是接口使用的是implements,一个类可以同时实现多个接口,但是此时子类就必须同时覆写好多个接口中的抽象方法。 (2). 既然定义中已经明确说明了接口是...
移动互联网应用
Spring Cloud 覆写远端的配置属性
Android 自定义view,覆写onMeasure例子