(一)关于继承中成员变量值的问题1.class Base{ int x = 10; void test(){ System.out.println(Base method,x = +x); }}public class Sub extends Base{ int x = 30; public static voi... 推广和普及Java技术,为国内众多的Ja
(一)关于继承中成员变量值的问题
dedecms.com
1.
class Base{
int x = 10;
void test(){
System.out.println("Base method,x = "+x);
}
}
public class Sub extends Base{
int x = 30;
public static void main(String[] args){
Sub b = new Sub();
System.out.println(b.x);
b.test();
Base b1=new Base();
b1.test();
System.out.println(b1.x);
Base b2=new Sub();
b2.test();
System.out.println(b2.x);
}
}
2.
class Base{
int x = 10;
void test(){
System.out.println("Base method,x = "+x);
}
}
public class Sub extends Base{
int x = 30;
void test(){
System.out.println("Base method,x = "+x);
}
public static void main(String[] args){
Sub b = new Sub();
System.out.println(b.x);
b.test();
Base b1=new Base();
b1.test();
System.out.println(b1.x);
Base b2=new Sub();
b2.test();
System.out.println(b2.x);
}
}
dedecms.com
总结:子类和父类有相同的成员变量时,子类调用自己定义的方法,则使用该子类的成员变量,若子类无重写父类方法,则子类调用该方法时,使用父类的成员变量
本文来自织梦
(二)关于继承中静态方法隐藏,实例方法覆盖的问题
织梦好,好织梦
3.
class Base{
static void test(){
System.out.println("Base static method");
}
void show(){
System.out.println("Base no static method");
}
}
class Sub extends Base{
static void test(){
System.out.println("Sub static method");
}
void show(){
System.out.println("Sub no static method");
}
}
class App{
public static void main(String[] args){
Base b = new Sub();
b.test(); b.show();
}
}
内容来自dedecms
总结:继承中静态方法隐藏,实例方法覆盖
copyright dedecms
复制地址和好友共享








