【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:j02080503.java绩等信息,祝愿广大网友取得需要的信息,参考学习。
import java.lang.*;
class j02080503
{
public static void main(String[] para)
{
B obj1 = new B();
System.out.println("======= B 类之 super =======");
obj1.showBSuper(); //B 定义之方法中 super ==> A
System.out.println("======= B 类之 this =======");
obj1.showBThis(); //B 定义之方法中 this ==> B
C obj2 = new C();
System.out.println("======= C 类之 super =======");
obj2.showCSuper(); // C 定义之方法中 super ==> B
System.out.println("======= C 类之 this =======");
obj2.showCThis(); // C 定义之方法中 this ==> C
//以下叙述句的结果,读者有兴趣可取消批注
/*
System.out.println("==== C 类对象之 showBSuper()====");
obj2.showBSuper(); // B 定义之方法中 super ==> A ,super 之方法不会系结到子类去,仍系结到 A 之 this 使用的方法
//成员变量是 A 之 this 使用的成员变量,
System.out.println("==== C 类对象之 showBThis()====");
obj2.showBThis(); // B 定义之方法中 this ==> B,成员变量是 B 之 this 使用的成员变量,
//但方法已经系结到 C 之 this 使用的方法
*/
/*
System.out.println("*************** 以对象只能使用到 this 的成员 ****************");
System.out.println("======= B 类之 this =======");
System.out.println("obj1.Var1 = " + obj1.Var1);
System.out.println("obj1.Var2 = " + obj1.Var2);
System.out.println("obj1.Var3 = " + obj1.Var3);
obj1.Fun1();
obj1.Fun2();
System.out.println("======= C 类之 this =======");
System.out.println("obj2.Var1 = " + obj2.Var1);
System.out.println("obj2.Var2 = " + obj2.Var2);
System.out.println("obj2.Var3 = " + obj2.Var3);
System.out.println("obj2.Var4 = " + obj2.Var4);
System.out.println("obj2.Var5 = " + obj2.Var5);
obj2.Fun1();
obj2.Fun2();
*/
}
}
class A
{
public int Var1 = 1000;
public int Var2 = 2000;
public int Var3 = 3000;
public void Fun1()
{
System.out.println("AAAA ==== Fun1() in A class");
}
public void Fun2()
{
System.out.println("AAAA ==== Fun2() in A class");
}
}
class B extends A
{
public float Var2 = 22.22F; //Hide 继承来的 Var2
public float Var3 = 33.33F; //Hide 继承来的 Var3
public float Var4 = super.Var2 + 400; //新增,仅为示范而作,尽量将初始化写于构造子之内;
public float Var5 = super.Var2 + 500; //新增,super ==> A
/*
static
{
Var3 = super.Var2 + 200; //error,证明 super 不是 static
}
*/
public void Fun2()
{
System.out.println("BBBB ==== Fun2() in B class");
}
public void showBThis()
{
System.out.println("Var1 = " + Var1
+ " Var2 = " + Var2
+ " Var3 = " + Var3);
Fun1();
Fun2();
}
public void showBSuper()
{
System.out.println("super.Var1 = " + super.Var1
+ " super.Var2 = " + super.Var2
+ " super.Var3 = " + super.Var3);
//System.out.println("super.Var4 = " + super.Var4); //错误,B 类没有 Var4 成员变量
super.Fun1();
super.Fun2();
}
/* //从A 继承而来,不 Hide 或 Override 的成员
public int Var1 = 1000;
public void Fun1()
{
System.out.println("AAAA ==== Fun1() in A class");
}
*/
}
class C extends B
{
/* //===============================================================================
//从 B(间接向A) 继承而来,且不 Hide 或 Override 的成员
public int Var1 = 1000;
//===========================================
public float Var3 = 33.33F;
public float Var5 = super.Var2 + 500;
//因 Var5 定义于 B ,而 super.Var2 指的是 A 的 Var2
public void Fun2()
public void showBThis()
public void showBSuper()
//======================================================================================
*/
public String Var2 = "AAAA"; //Hide 继承来的 Var2
public String Var4 = "BBBB"; //Hide 继承来的 Var4
public void Fun1()
{
System.out.println("CCCC ==== Fun1() in C class");
}
public void showCThis()
{
System.out.println("Var1 = " + Var1
+ " Var2 = " + Var2
+ " Var3 = " + Var3
+ " Var4 = " + Var4
+ " Var5 = " + Var5);
Fun1();
Fun2();
}
public void showCSuper()
{
System.out.println("super.Var1 = " + super.Var1
+ " super.Var2 = " + super.Var2
+ " super.Var3 = " + super.Var3
+ " super.Var4 = " + super.Var4
+ " super.Var5 = " + super.Var5);
super.Fun1();
super.Fun2();
}
}
上一篇:
j02080502.java
下一篇:
击破底价,“2018中国人保购车节暨厦门第五届电商购车节”放大招!(内附优惠指南)