黑马程序员技术交流社区
标题:
关于Override的一个小例子
[打印本页]
作者:
刘劲松
时间:
2013-8-12 11:26
标题:
关于Override的一个小例子
本帖最后由 刘劲松 于 2013-8-26 08:53 编辑
很简单的一个例子,初学者看看。大神直接飘过~~
import java.lang.*
public class OverrideDemo
{
public static void main(String[] args)
{
A2 obj1=new A2();
obj1.showVar1();
System.out.println("obj1.var1="+obj1.var1);
System.out.println("=================");
obj2.showVar1();
System.out.println("obj2.var1="+obj2.var1);
System.out.println("=================");
A2 obj3=new B2();
obj3.showVar1();
System.out.println("obj3.var1="+obj3.var1);
}
}
class A2
{
int var1=100;
protected void showVar1()
{
System.out.println("A2定义的showVar1() var1="+var1);
}
}
class B2 extends A2
{
double var1=1111.111;
public void showVar1()
{
System.out.println("B2定义的showVar1() var1="+var1);
}
}
复制代码
执行结果如下:
A2定义的showVar1() var1=100
obj1.var1=100
=================
B2定义的showVar1() var1=1111.111
obj2.var1=1111.111
=================
B2定义的showVar1() var1=1111.111
obj3.var1=100
----------------------------------------------------------------------------
很简单的一个例子,多态中重载的不同,记住成员变量和成员函数重载的不同规则。理解也很容易,
A2 obj3=new B2();
obj3.showVar1();
这种向上转型的方式,开辟的对象是父类类型的对象。
总结为:
成员函数在多态调用时,编译看左边(引用型变量所属类中有调用方法,编译通过,没有,编译失败),运行看右边。
成员变量的话,无论编译,运行都看左边。
作者:
许庭洲
时间:
2013-9-25 08:11
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2