当前位置: 技术问答>java相关
关于继承的问题SuperClass test = new Sub();
来源: 互联网 发布时间:2015-09-12
本文导语: class SuperClass { public int k = 100; } public class Sub extends SuperClass { public int k = 200; public static void main(String[] args) { SuperClass test = new Sub(); System.out.println(test.k); } } 运行结果:100 请高手帮忙解释一下吧,谢谢 ...
class SuperClass
{
public int k = 100;
}
public class Sub extends SuperClass
{
public int k = 200;
public static void main(String[] args)
{
SuperClass test = new Sub();
System.out.println(test.k);
}
}
运行结果:100
请高手帮忙解释一下吧,谢谢
{
public int k = 100;
}
public class Sub extends SuperClass
{
public int k = 200;
public static void main(String[] args)
{
SuperClass test = new Sub();
System.out.println(test.k);
}
}
运行结果:100
请高手帮忙解释一下吧,谢谢
|
在上篇回复基础上:
--------------------------------------------------------------
修改后的示例2:
class Super
{
public void print()
{System.out.println("super-print");}
void methodSuper()
{System.out.println("super-methodSuper");}
}
class Sub extends Super
{
public void print()
{System.out.println("sub");}
void methodSub()
{System.out.println("sub-methodSub");}
}
public class Test
{ public static void main(String[] args)
{ Super test = new Sub();
test.print();//运行结果:sub
test.methodSuper();//运行结果:super-methodSuper
test.methodSub ();//编译错误
}
}
//注:在1.3.1通过
-----------------------------------------------------------------
1 编译时看形式类型,因此语句test.methodSub ();//编译错误
2 执行时看实际类型,因此test.print();//运行结果:sub
3 子类没有methodSuper,但却从父类那里继承来了。因此test.methodSuper();//运行结果:super-methodSuper
4 注意,多态只对实例方法而言,并不用在类方法(静态方法)和域。
------------------------------------------------------------------
我是来学习的,很高兴能帮到你。愿我们互相帮助!
--------------------------------------------------------------
修改后的示例2:
class Super
{
public void print()
{System.out.println("super-print");}
void methodSuper()
{System.out.println("super-methodSuper");}
}
class Sub extends Super
{
public void print()
{System.out.println("sub");}
void methodSub()
{System.out.println("sub-methodSub");}
}
public class Test
{ public static void main(String[] args)
{ Super test = new Sub();
test.print();//运行结果:sub
test.methodSuper();//运行结果:super-methodSuper
test.methodSub ();//编译错误
}
}
//注:在1.3.1通过
-----------------------------------------------------------------
1 编译时看形式类型,因此语句test.methodSub ();//编译错误
2 执行时看实际类型,因此test.print();//运行结果:sub
3 子类没有methodSuper,但却从父类那里继承来了。因此test.methodSuper();//运行结果:super-methodSuper
4 注意,多态只对实例方法而言,并不用在类方法(静态方法)和域。
------------------------------------------------------------------
我是来学习的,很高兴能帮到你。愿我们互相帮助!