第二天学习JAVA,在学习继承和抽象类时,有一个案例,同时将抽象父类和子类在同一个test类里声明,然后在初始化子类实例的时候一直报错,代码如下:
public class YuanGong {
public static void main(String[] args){
Javaee jav = new Javaee();
jav.setName("张三");
jav.setYuangh(Integer.getInteger("35"));
jav.work();
}
public abstract class YG{
private int yuangh;//员工号
private String name;//姓名
public abstract void work();//工作
public void setYuangh(int i){
this.yuangh = i;
}
public int getYuangh(){
return yuangh;
}
public void setName(String str){
this.name = str;
}
public String getName(){
return name;
}
}
public abstract class YanFa extends YG{//研发类继承员工类
}
public abstract class WeiHu extends YG{//维护类继承员工类
}
public class Javaee extends YanFa{
@Override
public void work() {
System.out.println("员工姓名是"+this.getName()+",编号是"+this.getYuangh()+"的员工正在研发淘宝网站。");
}
}
public class Andro extends YanFa{
@Override
public void work() {
System.out.println("员工姓名是"+this.getName()+",编号是"+this.getYuangh()+"的员工正在研发手机淘宝。");
}
}
public class YingJ extends WeiHu{
@Override
public void work() {
System.out.println("员工姓名是"+this.getName()+",编号是"+this.getYuangh()+"的员工正在修理打印机。");
}
}
public class RuanJ extends WeiHu{
@Override
public void work() {
System.out.println("员工姓名是"+this.getName()+",编号是"+this.getYuangh()+"的员工正在维护网络。");
}
}
}
然后在第二行一直显示错误,
Javaee jav = new Javaee();
后来将所有类单独写这个问题就自己解决了,才发现这里涉及到一个内部类的问题:在同一个类中要实例化一个类应该先实例化其最外围的类,在这里将第二行代码改为:
Javaee jav = new YuanGong().Javaee();