代码如下:
class child{
int i=20 ;
void print(){
System.out.println("child") ;
}}
class boy extends child{
int i=10 ;
void print(){
System.out.println("boy") ;
}
}
public class test {
public static void main(String[] args){
child num=new boy() ;
System.out.println(num.i) ;
num.print() ;
}
}输出结果为:
20
boy
不知道为何分别输出父类的成员变量和子类的成员函数,哪位大哥知道的话给小弟讲解一下,谢谢
class child{
int i=20 ;
void print(){
System.out.println("child") ;
}}
class boy extends child{
int i=10 ;
void print(){
System.out.println("boy") ;
}
}
public class test {
public static void main(String[] args){
child num=new boy() ;
System.out.println(num.i) ;
num.print() ;
}
}输出结果为:
20
boy
不知道为何分别输出父类的成员变量和子类的成员函数,哪位大哥知道的话给小弟讲解一下,谢谢
child num=new boy() ;
System.out.println(num.i) ;
这个时候访问的是child的i了,如果不转型的话就是boy的了
System.out.println(((Boy)num).i);
child num=new boy() ; 定义了一个父类对象
System.out.println(num.i) ; 调用i 输出i=20
num.print() ; 由于子类重写了print()方法 调用子类print()方法 输出boy
成都云时代-白老师