java应用软件中哪里需要动态调度?
java动态调度中的软件应用程序在哪里可能有用java应用软件中哪里需要动态调度?,java,Java,java动态调度中的软件应用程序在哪里可能有用 班级学生{ int-maxRollNo=200; } 班级学生延伸学生{ int maxRollNo=120; } 班级大学生延伸到在校学生{ int maxRollNo=100; } 公开课学生测验{ 公共静态void main(字符串参数[]){ //超类可以包含子类对象。 学生obj1=新大学生(); 学生obj2=新学生(); //在这两个调用中,将打印超级类的maxRollNo。 System.out.println(obj1.maxRo
班级学生{
int-maxRollNo=200;
}
班级学生延伸学生{
int maxRollNo=120;
}
班级大学生延伸到在校学生{
int maxRollNo=100;
}
公开课学生测验{
公共静态void main(字符串参数[]){
//超类可以包含子类对象。
学生obj1=新大学生();
学生obj2=新学生();
//在这两个调用中,将打印超级类的maxRollNo。
System.out.println(obj1.maxRollNo);
System.out.println(obj2.maxRollNo);
}
}
上面的代码是可以理解的,但是在实际的软件开发中,这种动态分派方法在哪里有用呢?方法重写是Java支持运行时多态性的方法之一。动态方法分派是一种机制,通过这种机制,在运行时而不是编译时解析对重写方法的调用
class Student {
int maxRollNo = 200;
void m1()
{
System.out.println("Inside Student 's m1 method");
}
}
class SchoolStudent extends Student{
int maxRollNo = 120;
void m1()
{
System.out.println("Inside SchoolStudent 's m1 method");
}
}
class CollegeStudent extends SchoolStudent{
int maxRollNo = 100;
void m1()
{
System.out.println("Inside CollegeStudent 's m1 method");
}
}
现在在Java中,我们只能重写方法,不能重写变量(数据成员),因此运行时多态性不能由数据成员实现。例如:
obj1.maxRollNo
o/p :- 200
obj2.maxRollNo
o/p :- 120
obj3.maxRollNo
o/p :- 100
obj4.maxRollNo
o/p :- 200
代码中没有“动态调度”。你到底在问什么?您做了哪些研究(例如使用Google)?动态调度在Java软件开发中何时有用?空气什么时候对人类有用?夸张?是的,但不是太多。为什么我们不能为我们要调用的方法所在的相应类创建对象,而不是进行向上转换?你能解释一下为什么需要实时调用吗?在运行时解析方法调用的优点是什么?动态调度是一个非常有用的概念。假设您有1种方法来计算银行每个子类的利率。现在,当您想要计算利率时,您可以使用bank obj引用来调用interest方法,编译器将决定应该运行哪个银行利率方法。
obj1.m1();
o/p :- Inside CollegeStudent 's m1 method
obj2.m1();
o/p :- Inside CollegeStudent 's m1 method
obj3.m1();
o/p :- Inside CollegeStudent 's m1 method
obj4.m1();
o/p :- Inside SchoolStudent's m1 method
obj1.maxRollNo
o/p :- 200
obj2.maxRollNo
o/p :- 120
obj3.maxRollNo
o/p :- 100
obj4.maxRollNo
o/p :- 200