是怎么得到以下结论的
多态的情况下,子父类存在同名的成员变量时,默认访问的是父类的成员变量数据.
2.多态的情况下,子父类存在同名的非静态函数的时候,默认是调用子类的成员函数.
3.多态的情况下,子父类存在同名的静态函数时,默认是调用父类的成员函数.
.
多态的情况下,子父类存在同名的成员变量时,默认访问的是父类的成员变量数据.
2.多态的情况下,子父类存在同名的非静态函数的时候,默认是调用子类的成员函数.
3.多态的情况下,子父类存在同名的静态函数时,默认是调用父类的成员函数.
.
abstract class Animal
{
String name;
static String color="动物颜色";
public Animal(String name){
this.name=name;
}
public static void sleep(){
System.out.println("动物在睡觉");
}
public abstract void run();
}
class Mouse extends Animal
{
static String color="老鼠颜色";
public Mouse(String name){
super(name);
}
public static void sleep(){
System.out.println("老鼠在睡觉");
}
public void run(){
System.out.println(name+"四条腿走路");
}
public void dig(){
System.out.println(name+"老鼠在挖洞");
}
}
子类那个public static void sleep()的静态类型什么是什么?
差不多是这么个意思,专业名次啥的不熟,你看着理解吧:
1.成员变量的由声明决定 A a = new B();都有属性x,x的值由声明的类型A决定
2.非静态函数由实例决定 A a = new B();都有方法test(),test的执行结果由真实实例B决定
3.静态方法属于类 不属于实例 静态方法调用属于class就是这么个意思