java 接口 父类_java父类与接口有相同的方法

这是java多态的一个体现,如果一个类classA继承了类classB,有实现了接口interfaceA,并且接口中有方法funA(),且父类classB中也有funA(),那么对于classA来说既可以重写这个方法也可以不重写。

父类:

public classMySuperClass {public intgetData(){return 100;

}

}

接口:

public interfaceMyInterface{public int getData();//与父类重名的方法

public voidtodosomethings();

}

子类:

public class MyTest extends MySuperClass implementsMyInterface{public static voidmain(String[] args) {

MyTest mt= newMyTest();

System.out.println(mt.getData());

MySuperClass msc= newMyTest();

System.out.println(msc.getData());

}

@Overridepublic voidtodosomethings() {//TODO Auto-generated method stub

}

@Overridepublic intgetData() {//TODO Auto-generated method stub

return 10;

}

}

当继承父类并且同时实现接口的时候会自动提示实现接口独有的方法todosomethings(),并不提示要实现getData()方法,如果此时测试执行getData将会调用父类的方法。

如果选择自己重写getData方法,那么就会执行自己重写的方法。多态:父类引用指向了子类对象,如何理解这句话父类引用是"MySuperClass msc" 这句话定义了msc这个引用,

但是它指向的的(=)却是子类的对象 new Mytest(),因此栈空间里的msc指向了堆空间里的Mytest,当执行getData()方法的时候java的JVM会先找子类是否重写了这个方法,如果没有才会执行父类的方法。

因此执行的结果是:

10

10

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,长方体的类可以是一个名为“三维图形”的类,而“长方体”则是“三维图形”的子类。这样的设计可以使得“三维图形”类中定义一些通用的属性和方法,而“长方体”类则可以在此基础上再添加自己特有的属性和方法。具体代码如下: ```java public class ThreeDimensionalShape { private double volume; private double surfaceArea; // 构造方法 public ThreeDimensionalShape(double volume, double surfaceArea) { this.volume = volume; this.surfaceArea = surfaceArea; } // 计算体积的方法 public double getVolume() { return volume; } // 计算表面积的方法 public double getSurfaceArea() { return surfaceArea; } } public class RectangularCuboid extends ThreeDimensionalShape { private double length; private double width; private double height; // 构造方法 public RectangularCuboid(double length, double width, double height) { super(length * width * height, 2 * (length * width + length * height + width * height)); this.length = length; this.width = width; this.height = height; } // 计算长方体的体积 public double getVolume() { return length * width * height; } // 计算长方体的表面积 public double getSurfaceArea() { return 2 * (length * width + length * height + width * height); } } ``` 在上面的代码中,我们首先定义了一个名为“ThreeDimensionalShape”的类,其中包含了计算体积和表面积的方法。然后我们又定义了一个名为“RectangularCuboid”的子类,这个子类继承了“ThreeDimensionalShape”的属性和方法,并且还添加了自己特有的属性和方法。其中,我们在子类中重新定义了计算体积和表面积的方法,以便更加准确地计算长方体的体积和表面积。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值