小编Meh*_*öse的帖子

运行时多态性决策

我在某处读过运行时多态性是langugages中动态类型的结果.通过检查下面的代码,我们可以看到运行时多态的一个明确的例子.

class A{
    do(){}
}
class B extends A{
    do(){}
}
...
A ex = new B();
ex.do();
Run Code Online (Sandbox Code Playgroud)

由于存在超类类型引用,编译器无法确定实际引用哪个类型引用并在运行时绑定方法.但是下面的用法与相同的类定义有什么关系呢?

我的第一个问题是下面的例子;

class A{
    do(){}
}
class B extends A{
  //no overriding
}
...
A ex = new B();
ex.do();
Run Code Online (Sandbox Code Playgroud)

层次结构中只有一个版本的方法do().系统是否仍在等待运行时绑定方法?还是在编译时绑定?

我的第二个问题是下面的例子;

class A{
    do(){}
}
class B extends A{
  do(){}
}
...
B ex = new B();
ex.do();
Run Code Online (Sandbox Code Playgroud)

现在有子类(继承链中最低)类型引用.它会在运行时绑定吗?

java polymorphism jvm compiler-optimization

8
推荐指数
1
解决办法
348
查看次数

使用构造函数时获取nullpointerexception

public class Author {
private int id;
private String name;
private String university;
private String department;
private String email;
private int article1;
private int article2;
private int article3;
private int article4;
private int article5;
//constructors and getter/setters are generated automatically, not adding to have space
}
Run Code Online (Sandbox Code Playgroud)

这是我的作者类.该类仅具有这些属性.我还readDaFile创建了一个用于读取author.txt和创建作者对象的类.

import java.util.Scanner;
import java.io.*;


public class readAuthor {

private Scanner reader;
private String temp;
private String[] split;
public Author[] authorList;
private int dummyInt,dummyArticle1=0 ,dummyArticle2=0 ,dummyArticle3=0,dummyArticle4,dummyArticle5;
private int i=0;
private …
Run Code Online (Sandbox Code Playgroud)

java constructor nullpointerexception

-3
推荐指数
1
解决办法
126
查看次数