【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,j02090505.java,希望对大家有所帮助!
import java.lang.*;
public class j02090505
{
public static void main(String para[])
{
myInter mem1 = new myClass("colorfish");
/* 由于动态绑定,因此接口类型的对象引用,可直接用来操作接口
拥有的方法,若非动态绑定,则接口定义之方法并无实现可响应。 */
mem1.showTeam();
//mem1.showSuperTeam(); //编译错误,myInter 类没有此方法
((myInterEx)mem1).showSuperTeam(); //转型为子接口类型
//mem1.showName();//编译错误,myInter 类没有此方法
//System.out.println( mem1.myName ); //编译错误,没有 myName 字段
((myClass)mem1).showName(); //知道实例为 myClass 类型可作转型
System.out.println( ((myClass)mem1).myName );
System.out.println( "字段测试一:" + mem1.team );
//通常用 myInter.team
System.out.println( "字段测试二:" + ((myInterEx)mem1).team );
//通常用 myInterEx.team
System.out.println( "==================================");
/*以下为测试「子class 」可转「父interface」而作,一般不必如此*/
myClass mem2 = new myClass("小白鲨");
mem2.showTeam();
((myInter)mem2).showTeam(); //绑定的结果与前者同,不需如此
System.out.println( "字段测试三:" + ((myInter)mem2).team );
//通常用 myInterEx.team
System.out.println( "字段测试四:" + mem2.team );
//通常用 myInter.team
//((myInter2)mem1).showTeam();
//转型错误,旁系继承不能互转,但在编译时不会发现,执行才知道
}
}
interface myInter
{
public static final String team = "fishes";
public void showTeam();
}
interface myInterEx extends myInter
{
public static final String team = "fishes-PartII";
public void showSuperTeam();
}
//========= myInter2 仅用于转型测试 ==========
interface myInter2
{
public static final String team = "fishes";
public void showName();
}
//===========================================
class myClass implements myInterEx
{
String myName;
public myClass(String setName)
{
myName = setName;
}
public void showTeam()
{
System.out.println( team + " 小组");
/*存取的是 myInterEx 接口定义的 team 字段
此处仅为测试,一般会用:myInterEx.team */
}
public void showSuperTeam()
{
System.out.println( "延续自" + myInter.team + " 小组");
}
public void showName()
{
showTeam();
System.out.println( ":" + myName );
}
}
上一篇:
j02090504.java
下一篇:
Function GetIp(IP) 获得ip asp