【赐教】父类引用指向子类实例的好处?
时间:2011-12-25
来源:互联网
高手指教一下区别:在这儿我就没写下面的类了,只写了测试类的代码:问题:父类引用指向子类对象 和 直接实例化对象结果还不是一样的,为什么要搞得那么复杂咧?在这里体现不出任何子类指向父类对象的好处啊(多太的一种),那么在什么情况下才能更好的看出父类引用指向子类的好处咧?【不知道的不要瞎扯。我看到晚上的好些类就是瞎扯的,根本没体现出它的好处,求高手指教】 public class GraphicsTest {//测试程序类
public static void main(String[] args) {
Graphics gc= new Graphics();// Graphics为父类
gc.calArea();
gc = new Rect();// Rect为子类(父类引用指向子类对象)
gc.calArea();
gc = new Circle();//Rect为子类(父类引用指向子类对象)
gc.calArea();
Graphics gc1= new Graphics();
gc1.calArea();
Rect r=new Rect ();//实例化对象
r.calArea();//调用方法
Circle c=new Circle();
c.calArea();
}
}
public static void main(String[] args) {
Graphics gc= new Graphics();// Graphics为父类
gc.calArea();
gc = new Rect();// Rect为子类(父类引用指向子类对象)
gc.calArea();
gc = new Circle();//Rect为子类(父类引用指向子类对象)
gc.calArea();
Graphics gc1= new Graphics();
gc1.calArea();
Rect r=new Rect ();//实例化对象
r.calArea();//调用方法
Circle c=new Circle();
c.calArea();
}
}
作者: javahuangfang 发布时间: 2011-12-25
楼主可以看一下多态的应用,以及动态绑定。
假设有一个Animal的父类,Dog、Cat子类
如果你在代码中,事先申请
private Animal an;
这样的好处是什么列? An的实际类型在运行的时候才能具体确定,他可以是Dog Cat 或者Animal。因为你可以写:
an = new Animal();
也可以写:
an = new Dog();
或
an = new Cat(();
如果你一开始就申明了一个是Dog an; 那么你的an就只能是Dog 那么代码就不够灵活,以及的扩展的时候就不方便扩展。
当然,如果你确定an 只可能是DOG 不会为其它类型的时候,两种写法都是可以的。
假设有一个Animal的父类,Dog、Cat子类
如果你在代码中,事先申请
private Animal an;
这样的好处是什么列? An的实际类型在运行的时候才能具体确定,他可以是Dog Cat 或者Animal。因为你可以写:
an = new Animal();
也可以写:
an = new Dog();
或
an = new Cat(();
如果你一开始就申明了一个是Dog an; 那么你的an就只能是Dog 那么代码就不够灵活,以及的扩展的时候就不方便扩展。
当然,如果你确定an 只可能是DOG 不会为其它类型的时候,两种写法都是可以的。
作者: 朝花夕拾 发布时间: 2011-12-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28