我怀疑我们可以创建和引用一个类的对象并将其分配给它的子类。如果是这样,我们可以使用创建该对象的子类方法吗?
以下是示例:
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;
}
}
如何访问方法,我的意思是可以访问哪些类方法?
答案 0 :(得分:3)
将一种类型的对象分配给另一种类型的引用的经验法则是“isA”测试。如果您的超类为Fruit
且子类为Banana
,则可以指定:Fruit obj = new Banana()
,如果 Banana
为Fruit
。
我建议你对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