java override
// 覆盖父类的方法,在子类直接调用子类内部这个方法时
public class TestCalc{
protected static class Wine{
String name(){return "Wine";}
}
protected static class SparkLingWine extends Wine{
@Override String name(){return "SparkLingWine";}
}
protected static class Champagne extends SparkLingWine{
//在方法调用时先会在子类中找覆盖的方法,如果子类中没有则会在父类中去找。有多层继承的话按就近查找
//@Override String name(){return "Champagne";}
@Override String name(){return "Champagne";}
}
public static void main(String[] args)
{
Wine wines[]={new Wine(),new SparkLingWine(),new Champagne()};
for (Wine wine:wines) {
System.out.println(wine.name());
System.out.println("==========================");
}
}
}
/*
Wine
==========================
SparkLingWine
==========================
Champagne
==========================
*/