-7

我怀疑我们是否可以创建和引用一个类的对象并将其分配给它的子类。如果是这样,我们可以使用创建该对象的子类方法吗?

这是示例:

class Super_Class
{
}

class Sub_Class extends Super_Class
{
}

public class test
{
    public static void main(String a[])
    {
        Super_Class obj;
        obj= new Sub_Class;
    }
} 

方法的访问呢,我的意思是哪些类方法是可访问的?

4

2 回答 2

3

将一种类型的对象分配给另一种类型的引用的经验法则是“isA”测试。如果您的超类是Fruit并且子类是Banana,您可以分配:Fruit obj = new Banana() if Banana isA Fruit

我建议您对 Java 中的继承和类型系统有一个很好的了解。

于 2013-04-12T16:33:52.090 回答
0

您正在寻找的称为多态性,它是面向对象编程的主要部分

您可以使用界面来完成。

例如。

public interface myInterface {
  public void test();
  public int getInt();
}

public class Super_Class {
  public void test() {
 //code here
  }
}

public class Sub_Class extends Super_Class implements myInterface{

public int getInt() {
  return 0;
  }
}

这意味着你可以像这样使用它

public static void main(String[] args) {
myInterface subClass = (myInterface) Sub_Class;
}

您现在可以访问这两个类中的方法,只要它们在接口中定义即可。

请在此处查看维基百科页面

于 2013-04-12T16:41:13.500 回答