在学java的继承时发生了这奇怪的情况,写了一个继承的对象代码,
package a01staticCode;
public class Test {
public static void main(String[] args) {
studentAbroad s1 = new studentAbroad();
s1.lunch();
System.out.println("*******");
//在这里之后就出现报错
student s2 = new student();
s2.lunch();
}
}
//方法重写的应用场景
class person{
public void eat(){
System.out.println("吃菜,干饭");
}
public void drink(){
System.out.println("和白凉开");
}
}
//方法重写的类
class studentAbroad extends person{
//重写的成员方法
@Override
public void eat(){
System.out.println("意大利面伴42号水泥");
}
@Override
public void drink(){
System.out.println("喝洋酒");
}
public void lunch(){
this.eat();
this.drink();
super.eat();
super.drink();
}
}
//学生子类
class student extends person{
public void lunch(){
this.eat();
this.drink();
}
这是运行结果,
查了一下博客,都说是环境变量问题,但运行其他代码是缺没出错
在博客也没查到太多情况相符的,有其他见解的吗。
确保你的 Java 环境变量设置正确,并且你能够正常使用 javac 和 java 命令。
确保你的代码没有编译错误。你可以使用 javac 命令来编译你的代码,并检查是否有任何编译错误。
确保你的代码文件名和类名匹配。在 Java 中,类名和文件名必须相同。
尝试重新编译你的代码,看看能否解决问题。
每个类单独写在一个文件里,同时文件名保持与类名一致,类定义使用public class关键字保证可见性。
//在这里之后就出现报错
写的是啥代码,我运行是正常的
package a01staticCode;
这是干啥的,删了不行吗
报错就是这玩意报的
整体代码没有问题,只不过要把你的 class 类名首写字母换成大写就好了
你贴出来的代码最后一行少一个括号,全部代码查看运行完,没有报任何错误,都是正常的,只是少了个括号
class student extends person {
public void lunch() {
this.eat();
this.drink();
}
} // 这里少一个括号,我给你加上了