public class Demo1 {
public static void main(String[] args){
Pupil p1=new Pupil();
p1.printname();
}
//学生类
}
class Stu{
public int age;
public String name="*";
public float fee;
public void printname(){
System.out.println("name is "+this.name);
}
}
//小学生类
class Pupil extends Stu{
public String name="松松";
}
这个不是覆盖吗?为什么覆盖不了父类的name?那么要怎么写才能覆盖呢??
public static void main(String[] args){
Pupil p1=new Pupil();
p1.printname();
}
//学生类
}
class Stu{
public int age;
public String name="*";
public float fee;
public void printname(){
System.out.println("name is "+this.name);
}
}
//小学生类
class Pupil extends Stu{
public String name="松松";
}
这个不是覆盖吗?为什么覆盖不了父类的name?那么要怎么写才能覆盖呢??
你想啊printname方法被编译在Stu.class里,它能知道Pupil.class里有个name吗?
但是反过来可以,在子类当前class里找不到的时候会继续向上(父类)追溯
public static void main(String[] args){
Pupil p1=new Pupil();
p1.printname("松松");
}
//学生类
}
class Stu{
public int age;
public String name="*";
public float fee;
public void printname(){
System.out.println("name is "+this.name);
}
}
//小学生类
class Pupil extends Stu{
//public String name="松松";
public void printname(String s){
System.out.println(" name is "+s);
}
public void pay(float fee){
}
}
谢谢!!非常感谢!
我写了覆盖printname();上面的有用!但是我这样:
public String printname(String s ){
return s;
}
介个为什么没用呢??求解!
public class Demo1 {
public static void main(String[] args){
Pupil p1=new Pupil();
p1.printname();
}
//学生类
}
class Stu{
public int age;
public String name="*";
public float fee;
public void printname(){
System.out.println("name is "+this.name);
}
}//小学生类
class Pupil extends Stu{
public String name="松松";
public void printname(){//覆盖掉方法
System.out.println("name is "+this.name);
}
}要覆盖的话,函数定义应该和父类一摸一样才行啊 ;