- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04_2类的层次结构--继承资料
继 承 小吴老师 tel QQ:372869767 类与类之间的三种关系 is-a ---------继承关系 has-a --------聚合、拥有关系(内部类) 内部类无条件拥有外部类的成员属性和方法 字节码名称为:外部类名$内部类名.class use-a --------关联关系 调用 好人定义:心地善良、助人为乐…… 张三是好人 李四是好人 class Ren{ int age; String name; void chi(){ System.out.println(“我张嘴”); } } class XueSheng{ ????????? } 一、继承的描述 用is-a 关系描述类与类之间的关系,称之为继承 类A继承了类B称类A为类B的直接子类(派生类);类B称为类A的直接超类(父类或基类) 子类无条件的拥有父类的成员属性和方法 继承实现了代码的复用性 类的继承的语法形式 [类的修饰符] class 类名 [extends 超类名] class fathor{ String xing; } class son extends fathor{ } Fathor 是父类(基类) son是fathor的直接子类(派生类)。 在son 中无条件的拥有了xing这个属性。 使用继承关系设计大众汽车4s店 4s店拥有捷达汽车、宝来汽车、高尔夫 类的继承规则 直接子类继承那些被声明为public或protected的直接超类成员(包括成员变量和成员方法) 直接子类继承那些未被存取权限修饰符修饰的直接超类成员,只要该子类与该超类在一个包中; 直接子类不继承被修饰为private的直接超类的成员。 讲继承规则前先讲下包与访问权限修饰符 修饰符 类内部 同一包 子类 任何地方 private yes friendly yes yes 同一包yes protected yes yes yes public yes yes yes yes 类的继承重点:变量的隐藏 直接子类中声明了一个与直接超类的成员变量同名的成员变量,则称该父类的成员变量在该子类中被隐藏,用关键字this和super指明子类和父类中同名的成员变量。 this本类对象(出现在哪个类中就代表哪个类的对象) super父类对象(出现在哪个类中就代表哪个类的直接父类对象) class A{ int x=0; } class B extends A{ int x=2; void add(){ System.out.println(x+1); } void cheng(){ int x=3; int y=x*10; System.out.println(y); } void chu(){ int x=4; int y=this.x/2; System.out.println(y); System.out.println(super.x/x); } void jian(){ int y=x-this.x; System.out.println(y); } } 类的继承补充 JAVA只支持单继承,不允许多继承:一个子类只有一个父类,一个父类可以派生多个子类 定义了继承关系后,改动父类的一个属性或方法时,子类也会同样改变。 Object 类是所有类的共同超类 A C M 如果一个类没有显示的继承某一个类,那电脑自动继承Object类 类的继承无处不在 只要有类就有继承?? 继承关系中的内存原理 实例化一个对象的过程是: 1、声明一个复合数据类型的引用在栈中 A a; 2、创建个内存中 new A(); 3、把内存空间的地址复制给引用 a=new A(); 在继承关系中实例化一个子类对象 实例化子类对象时电脑会自动在子类对象的内存空间内实例化一个父类对象
文档评论(0)