黑马程序员技术交流社区
标题:
父类子对象的理解
[打印本页]
作者:
张利
时间:
2012-11-11 21:55
标题:
父类子对象的理解
本帖最后由 张利 于 2012-11-12 22:50 编辑
我的理解就是子类里面隐含着父类的对象就是父类子对象 ,不过总是觉得这么理解的话 感觉叫子类父对象会更贴切一点。。。。。。。也不知道我的理解对不对
作者:
张综
时间:
2012-11-11 22:06
1 什么叫继承
OOP的又一个特性。
在已有类的基础上来创建新类,新类具有已有类的所有特性(属性和方法,没有构造器)。
新类的对象具有已有类对象的所有功能,或者称之为具有已有类的接口(就是这个对象可以调用的所有方法)。
创建一个类的目的是:为了创建这个类的对象。
创建这个类的对象的目的是:是为使用这个对象的方法。
一个对象可以调用的方法是:这个对象的接口。
2 什么叫父类(基类、超类)
已有类:父类,或者是基类(不是鸡肋),超类 被继承特性的类
3 什么叫子类(派生类、导出类)
新类:子类,或者叫派生类、也叫导出类。
在已有类的基础上创建的新类
4 继承的语法
class 新类 extends 已有类 {
}
5 继承是可以多层次的
也就是说,A类有个子类是B类, B类有个子类是C类。这是可以的!
7 单继承
Java中只有单继承,而没有多继承。
单继承有好处,但也有坏处
好处:没有了多继承引发的二意性。
坏外:不能同时具有多个类的特性了。
Java中自己独有的(C++没有的):接口再加上其他的东西就可以超过了多继承的好处。
8 可以象使用父类对象一样使用子类对象
可以象使用父类那么来使用一个子类,也就是说,我们可以把在使用父类的任何地方使用子类对象来替换。
9 里氏代换原则(LSP)(了解)
如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。
Java API中,有很多继承关系都没有遵守里氏代换原则!这些东西通常都是在jdk1.0中出现的类。但后期就基本没有出现了。
就算是大师们,也有错误的时候。因为早期有很多人对继承使用很不正确!
小结
子类对象可以用来当做父类对象来使用,反之不可。
子类对象具有父类的所有功能。
子类可以添加新的功能和特性
继承的语法
Java中允许继承的多层次化,即子类也可以有子类
作者:
种生祥
时间:
2012-11-11 22:10
你是在说多态吧??
作者:
许坤
时间:
2012-11-11 22:29
1,子类继承了父类所有的方法,包括构造方法~ ,就是这个父类的引用指向子类的对象
2,也可理解为除了构造方法外,父类的所以方法和属性都被子类的对象继承
作者:
张利
时间:
2012-11-11 23:03
父类,子类和多态的概念也都是了解了,就是对父类子对象这个名词感觉模糊。。。。。。
作者:
深井看海
时间:
2012-11-11 23:27
A类有个子类是B类, B类有个子类是C类,继承说明了A里面的东西B里面C里面都继承下来了,B里面的东西C里面都继承下来了
子类对象可以用来当做父类对象来使用,反之不可。
子类对象具有父类的所有功能。
子类可以添加新的功能和特性
Java中允许继承的多层次化,即子类也可以有子类。
Java中继承是单继承的。即一个父类可以有多个子类,但一个子类只能有一个父类!
作者:
李涛兴
时间:
2012-11-12 21:47
要调用父类中的方法,还得先建立子类对象,如果你叫子类父对象的话,那不就相当于用父类对象去调用子类方法吗?毕老师视频里讲过猫的例子来看,定义了一个动物类 class Animal{吃饭()}和class Cat{吃饭(),抓老鼠},使用父类的引用去调用父类的吃饭()功能可以实现,但是要调用子类中的抓老鼠()功能时,就不行了。如果从多态的角度入手,应该会好理解点。
作者:
打工人
时间:
2012-11-12 22:42
李长波 发表于 2012-11-12 22:40
试试我能发帖不!
{:soso_e140:}{:soso_e140:}{:soso_e140:}{:soso_e140:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2