<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,也不能够被拥有定义实现符的修饰如:native,synchronized,strictfp也不能够是静态的,因为静态方法不能够抽象方法。
继承接口:如果接口声明了一个和继承来的常量名相同,则无论他的类型如何都将被隐藏,并且当他们的类型不一致时,编译出错。
测试如下:
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) 编辑 收藏