我真的很想了解这些的实时用途是什么:
1. Java概念的用途是什么?“超类变量可以引用子类对象”?即使这样做,SuperClass变量也只能用于访问由SuperClass定义的对象的那些部分,而不能访问子类的成员。甚至可以通过子类对象来实现。
2.需要动态分配方法吗?我有一个例子如下:
class A
{
void disp()
{
System.out.println("in A");
}
}
class B extends A
{
void disp()
{
System.out.println("in B");
}
}
class C extends A
{
void disp()
{
System.out.println("in C");
}
}
public class mainclass
{
public static void main(String[] args)
{
A a= new A();
B b=new B();
C c=new C();
A ref;
ref=b;
ref.disp();//calls class B method
ref=c;
ref.disp();//calls class C method
ref=a;
ref.disp();//calls class A method
}
}
上面的代码通过将不同的子类对象分配给超类引用变量来使用动态方法分派。我的问题是为什么要使用“ ref”并为其分配对象然后调用函数?即使不使用此“ ref”和对象分配(动态调度),我们也可以调用子类函数。
我们也可以这样称呼:
a.disp();//calls A method
b.disp();//calls B method and so on.
c.disp();
谁能帮助我理解这两个概念的实时使用?
提前致谢。
多态性就像声明一个统一的接口,将实现细节留给实现接口的具体类型。这就像为所有实现该接口的人定义合同绑定一样。这使对象可以在不知道其确切类型的情况下彼此交互。
让我们假设您有一个方法(简单的例子):
public boolean remove(List list) {
return list.remove();
}
由于已经定义了类型为List
interface的参数,因此可以List
在运行时接受任何实现的对象。这样,您不必remove()
为每个List
实现编写单独的方法,只要传递给此方法的对象实现即可List
。
另请阅读:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句