class Animal{
public int age;
public String name;
public void eat(){
System.out.println("年龄"+age);
System.out.println("有吃东西的能力");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("年龄"+age);
System.out.println("小狗有吃东西的能力");
}
}
public class First {
public void main(String[] args) {
// TODO Auto-generated method stub
Dog dog=new Dog();
dog.age=10;
dog.eat();
}
}
跑出来的结果不是代码中的内容而是其他内容
必须有main函数才能执行,这三个代码,只有测试代码里有main函数,执行它就可以出结果,然后再执行前两个,结果不变(实际上仍执行的测试代码)。前两个代码根本没有分配运行方式
//这是父类代码 public class Animal{ public int age; public String name; public void eat(){ System.out.println("年龄"+age); System.out.println("有吃东西的能力"); } } //这是子类代码 public class Dog extends Animal{ public void eat(){ System.out.println("年龄"+age); System.out.println("小狗有吃东西的能力"); } } //这是测试代码 public class First { //这里不能没有static public static void main(String[] args) { // TODO Auto-generated method stub Dog dog=new Dog(); dog.age=10; dog.eat(); } }
楼上说的道理我都懂,可是题主,你确定真的不是因为main方法中少了static吗?
public void main(String[] args) { // TODO Auto-generated method stub Dog dog=new Dog(); dog.age=10; dog.eat(); } 中少了static 正确是: public static void main(String[] args) { // TODO Auto-generated method stub Dog dog=new Dog(); dog.age=10; dog.eat(); }
你子类里的方法跟父类中的方法一样可以不用写,因为子类已经继承了父类里边的方法.如果是重写的话,可以写成别的内容,还有你后边那个First类不能在里边写主函数.把first类去掉
。。感觉是换行太多..要不就是eclipse左边选错project了吧,执行就是其他文件了
我在eclipse上跑的很正常~ 可能是你哪点错了~