【问题标题】:Accessibility of methods from super-class [duplicate]超类方法的可访问性[重复]
【发布时间】:2013-04-05 06:47:00
【问题描述】:

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

示例如下:

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

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

【问题讨论】:

    标签: java inheritance


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你要找的东西叫做多态性,它是面向对象编程的主要部分

      你可以通过界面来做到这一点。

      例如

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-03
        • 2010-09-21
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        相关资源
        最近更新 更多