超级方法的可访问性

时间:2013-04-12 16:29:56

标签: java inheritance

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

以下是示例:

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;
    }
} 

如何访问方法,我的意思是可以访问哪些类方法?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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;
}

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

请参阅维基百科页面here