package notebook; class Fruit{ public Fruit() { System.out.println("fruit"); } } class Apple extends Fruit{ public Apple(){ } public Apple(String s) { System.out.println("apple"); } } class Mcintosh extends Apple{ public Mcintosh() { System.out.println("mcintosh"); } } public class chouxiang { public static void main(String[] args) { // TODO Auto-generated method stub Fruit fruit = new Mcintosh(); } } 什么意思
时间: 2024-04-11 20:28:27 浏览: 165
chinaMap,java项目开发源码,java中system.out.println()源码分析
这段代码定义了一个包名为`notebook`的Java类。在这个类中,有一个`Fruit`类和它的子类`Apple`,还有`Apple`的子类`Mcintosh`。`Fruit`类有一个无参构造方法,用于输出字符串"fruit"。`Apple`类继承自`Fruit`类,它有一个无参构造方法和一个带有字符串参数的构造方法,其中无参构造方法为空,而带有字符串参数的构造方法输出字符串"apple"。`Mcintosh`类继承自`Apple`类,它有一个无参构造方法,用于输出字符串"mcintosh"。
在`chouxiang`类的`main`方法中,创建了一个`Fruit`类型的对象`fruit`,并实例化为`Mcintosh`类的对象。这是因为多态性的特性,父类类型的引用可以指向子类类型的对象。当创建对象时,会先调用父类的构造方法,再调用子类的构造方法。所以在输出结果中,首先会打印出"fruit",然后打印出"mcintosh"。
所以,输出结果为:
```
fruit
mcintosh
```
阅读全文