子类继承父类的实例方法与静态方法测试
子类 | 结果 |
---|---|
子类能继承父类的实例方法同时也能继承父类静态方法 | static方法是可以被继承的!final是不可以的! |
在子类中测试: | |
1. 父类类名调用父类静态方法 | 正确 |
2.父类实例调用父类的静态方法 | 正确 |
3.子类类名调用超类的静态方法 | 正确 |
4.子类实例调用超累的静态方法 | 正确 |
5.子类类名调用本类的静态方法 | 正确 |
6.子类实例调用本类的静态方法 | 正确 |
7.子类调用超类的实例方法 | 正确 |
8.各个实例调用本类的实例方法 | 正确 |
测试代码
超类:Super
/**
* @Description: 超类
* @author: wangsai
* @date 2019/9/11 15:42
*/
public class Super {
public Integer getLenght(){
return new Integer(4);
}
public static void parent(){
System.out.println("超类的静态方法");
}
}
子类:Sub
/**
* @Description: 子类
* @author: wangsai
* @date 2019/9/11 15:43
*/
public class Sub extends Super {
public Long getLength(long s){
return new Long(s);
}
public static void son(){
System.out.println("子类的静态方法");
}
public static void main(String[] args) {
Super aSuper = new Super();
Sub sub = new Sub();
System.out.println("各个实例调用本类的实例方法:"+aSuper.getLenght().toString()+","+sub.getLength(5).toString());
System.out.println("子类调用超类的实例方法:"+ sub.getLenght());
/*
System.out.println("调用超类的类方法:"+Sub.parent());
是错误的表达,解释:""+void是不可以的
*/
//父类类名调用父类静态方法
Super.parent();
//子类类名调用超类的静态方法
Sub.parent();
//子类实例调用超累的静态方法
sub.parent();
//子类类名调用本类的静态方法
Sub.son();
//子类实例调用本类的静态方法
sub.son();
//父类实例调用父类的静态方法
aSuper.parent();
}
}
测试结果: