如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员变量以及方法的访问权限保持不变。
如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量作为子类的成员变量,并且继承了父类的protected、public方法,继承的成员或方法的访问权限保持不变,但子类不能继承父类的友好变量和友好方法。
源代码:
public class Example2_4 { public static void main(String args[]){ int a=5,b=3; Son son=new Son(); GrandSon sunzi=new GrandSon(); son.changeMoneyHK(666); son.changeMoneyRMB(5000); System.out.println(son.moneyHK); System.out.println(son.moneyRMB); System.out.println(son.sub(a,b)); System.out.println(son.add(a,b)); System.out.println(sunzi.moneyHK); System.out.println(sunzi.moneyRMB); System.out.println(sunzi.sub(a,b)); System.out.println(sunzi.add(a,b)); System.out.println(sunzi.multi(a,b)); } } class Father{ private int moneyDollar=300; int moneyHK=200; int add(int x,int y){ return x+y; } } class Son extends Father{ int moneyRMB=800; public void changeMoneyRMB(int x){ moneyRMB=x; } public void changeMoneyHK(int x){ moneyHK=x; } int sub(int x,int y){ return x-y; } } class GrandSon extends Son{ int multi(int x,int y){ return x*y; } } |
程序运行结果: