随笔-19  评论-2  文章-1  trackbacks-0

 <java编程语言 >

 

多太中的一种情况

在类的多太中,域是由他引用的类型决定那个版本,而方法则是由对象的真实类决定的。这和接口中使用的一样。

测试代码如下:

class Father{

       public String str="father";

       public void fun(){

              System.out.println("Father : " + str);

       }

}

class ChildOne extends Father{

       public String str="childone";

       public void fun(){

              System.out.println("ChildOne : " + str);

       }

}

public class TestClassProMeth {

       public static void main(String args[]){

              ChildOne childone = new ChildOne();

              Father father = childone;

              father.fun();

              childone.fun();

              System.out.println(father.str + '\n' + childone.str);

       }

}

结果:

ChildOne : childone

ChildOne : childone

father

childone

 

接口:

在接口中的声明的域是是一个常量(public static final),他的方法不能够有其他的修饰符,隐式为public,也不能够被拥有定义实现符的修饰如:nativesynchronizedstrictfp也不能够是静态的,因为静态方法不能够抽象方法。

继承接口:如果接口声明了一个和继承来的常量名相同,则无论他的类型如何都将被隐藏,并且当他们的类型不一致时,编译出错。

 

测试如下:

interface Super{

       public static final String name = "super";

       void fun();

}

interface Entend extends Super{

       String name = "entend";

       String str = Super.name + '\n' + name;

       void fun();

}

class Realize implements Entend{

       public void fun(){

              System.out.println(Super.name + '\n' + Entend.name + '\n' + str);

       }

}

public class TestInterface {

       static String name ="testinterface";

       public static void main(String args[]){

              Realize real = new Realize();

              real.fun();

              System.out.println(Realize.name + '\n' + ((Super)real).name);

       }

}

结果:

super

entend

super

entend

entend

super

posted on 2005-07-30 21:03 sky 阅读(147) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: