代码4为什么是9
2条回答 默认 最新
- 诗人在流浪 2021-10-28 22:16关注
对于多态总结一下
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中 的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父 类中的变量,那么在编译时会报错。A a = new B();这是java典型的三大特性之一多态,父类的引用指向子类
父类中的g方法静态方法,虽然子类中也有静态的g方法,但是子类不会重写父类的方法,
所以代码4调用的还是父类中的方法.如果父类和子类的方法都修改成非静态,则子类会重写父类的g方法,则会调用子类的g方法
测试代码如下:public class E { public static void main(String[] args) { B b = new B(); System.out.println(b.f(10.0,8.0)); System.out.println(b.g(3)); A a = new B(); System.out.println(a.f(10.0,8.0)); System.out.println(a.g(3)); } } class A { double f(double x, double y){ return x+y; } int g(int n){ return n*n; } } class B extends A{ double f(double x, double y){ double m = super.f(x,y); return m+x*y; } int g(int n){ //int m = A.g(n); return n; } }
测试结果:
98.0
3
98.0
3本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 C#调用python代码(python带有库)
- ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
- ¥15 活动选择题。最多可以参加几个项目?
- ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
- ¥15 vs2019中数据导出问题
- ¥20 云服务Linux系统TCP-MSS值修改?
- ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
- ¥20 怎么在stm32门禁成品上增加查询记录功能
- ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
- ¥50 NT4.0系统 STOP:0X0000007B