您的位置:首页 > 编程语言 > Java开发

java总的重载(overload)、重写或覆盖(override)和隐藏分析;

2017-05-02 14:01 645 查看
class Super{

public static void smethod(){
System.out.println("super smethod!");
}

public static void stest(){
System.out.println("super test!");
}

public void test(){
System.out.println("super test!");
}
public void test(int i){
System.out.println("super test i:"+i);
}
}

class Sub extends Super{

//重写或覆盖父类方法,
//不管使用父类引用还是子类引用调用test()
//都是调用此方法
public void test(){

System.out.println("sub test!");
}
//重载test方法
public void test(String info){
System.out.println(info);
}
//隐藏父类stest方法
//使用子类引用调用stest(),则调用这里
//父类引用调用stest(),则调用父类方法;
public static void stest(){
System.out.println("sub test!");
}
}

public class SynchronizedTest {

public static void main(String[] args) {

Sub sub = new Sub();
sub.test();//重写或覆盖,调用子类实现
Super super1 = sub;
super1.test();//重写或覆盖,调用子类实现

//重载
sub.test(100);
sub.test("overload");

//sub.stest();

sub.stest(); //子类中隐藏,依赖于引用类型,只能调用子类实现;
super1.stest();//子类中隐藏,依赖于引用类型,调用父类实现;
sub.smethod();//没有隐藏,调用父类实现;
super1.smethod();//没有隐藏,调用父类实现;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: