class Animal{ public static int get (int n) { return n+10; } public int see (int n) { return n+10; } } class Dog extends Animal { public static int get (int n) { return n*10; } public int see (int n) { return n*10; } } public class E { public static void main (String args []) { Animal animal = null; animal = new Dog (); System. out. printf (“%d:%d”, animal. get (10), animal. see (10)); } }详细解读这段代码
时间: 2024-03-11 14:46:18 浏览: 63
animal.class
这段代码定义了一个Animal类,其中包含一个静态方法get和一个实例方法see。还定义了一个Dog类,它继承了Animal类,并且重写了get和see方法。最后定义了一个E类,并在其main方法中创建了一个Dog对象,并将其赋值给Animal类型的变量animal。然后调用animal对象的get和see方法,并输出结果。
在Animal类中,静态方法get返回传入参数n加上10的结果。实例方法see也返回传入参数n加上10的结果。
在Dog类中,静态方法get返回传入参数n乘以10的结果。实例方法see也返回传入参数n乘以10的结果。
在E类中,创建了一个Dog对象,并将其赋值给Animal类型的变量animal。虽然animal变量的静态类型是Animal,但实际上它指向的是一个Dog对象。因此,animal调用get方法时,会调用Dog类的get方法,返回传入参数n乘以10的结果;调用see方法时,也会调用Dog类的see方法,返回传入参数n乘以10的结果。最后输出结果20:100。
阅读全文