对于下列代码,下列哪个叙述是正确的?class Animalf int m; Animal(){ m=100;} Animal(intm){thism=m;}}class Dog extends Animal{ Dog(){ super(8); m+= 10;}}public class E{ public static void main(String args[]){ Dog dog=new Dog(); Systemoutprintln(dog.m);}}
时间: 2024-02-26 12:54:11 浏览: 169
计算机图形学之动画和模拟算法:粒子系统在自然现象模拟中的应用.docx
根据给出的代码,正确的叙述是:输出结果为 18。
首先,我们知道 `Dog` 类继承了 `Animal` 类,并且默认会调用 `Animal` 类中的无参构造方法。
在 `Animal` 类中,定义了两个构造方法,其中一个是无参构造方法,另一个是带有一个参数的构造方法,用于初始化 `m` 的值。
在 `Dog` 类中,虽然没有定义构造方法,但是会默认调用父类的无参构造方法。但是,在 `Dog` 类中使用了 `super(8)` 调用了父类的带有一个参数的构造方法,将 `m` 的值初始化为 8。
接下来,在 `Dog` 类中,`m` 的值增加了 10,所以最终输出结果为 18。
阅读全文