关于A a = new B()
来源:互联网 发布:腾讯微云网盘for mac 编辑:程序博客网 时间:2024/05/01 23:32
首先这是对象实例化的一种方式。其中没给出的条件是B是继承于A的。
需要注意的是,这里的a并不是A的实例,而是B的实例。但是为什么这么表示呢?
在进行多态操作时,我们会用很多的子类继承一个父类,而子类一般都会重写父类中的类,但是却不是全部重写,只重写部分类。
例如,父类为Class animal,并且具有吃肉,吃草等方法。而子类分别为猫,狗,牛等,但是牛是不吃肉的,所以他不会重写吃肉这个方法。但是万一我们的子类太多,我们记不清是否重写了某个类,这时候这种写法就显得很有用了。
这时我们用Animal a = new niu()来实例化的话,我们先查找吃草的方法时,由于牛这个类中重写了吃草的方法,所以调用的是牛.吃草()的方法,如果我们找吃肉的方法,那么这时调用的就是animal.吃肉()的方法。
总结来说
如果A有两方法: a1 a2 , B重载了其中一个a2 , 那么a.a1() 执行A.a1, a.a2()执行B.a2()
这是笔者认为最简单的解释了。
0 0
- 关于A a = new B()
- A *a=new B();
- A *a=new B();
- A *a=new B();
- A a = new B();
- A ab=new B();
- A *p=new B;
- A a=new B()的意义
- A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C();
- C#中A a=new B()的意义
- 请教高手 A a= new B();
- JAVA中A a = new B();什么意思?
- C#中A a=new B()的意义
- 为什么A *a=new B不直接写成B b,或者B *p呢?
- A b=new B()子类的向上转型
- 关于父类引用指向子类对象(A a = New B();)的使用,理解向上转型
- 一道面试题:StringBuffer a=new StringBuffer ("A"); StringBuffer b=new StringBuffer
- String a = new String(new char[] { 'a', 'b', 'c', 'd' });
- C++实现黄金分割法搜索
- Unity UI优化技术与技巧
- Aizu ALDS1_2_A Bubble Sort(冒泡排序)
- 文章标题
- 山东理工大学acm非专业程序设计基础答案
- 关于A a = new B()
- 34-2-lesson exercises
- Unity 使用代码修改Texture属性 一键生成精灵
- 如何关闭Xcode8的系统日志打印
- 中医.辨证论治
- java 使用Thumbnailator 上传图片 并压缩图片大小
- libreoffice打开文档-修改表格-修改书签-保存pdf
- Github上传代码教程
- Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library