Java基础教程 教学课件 ppt 作者 978-7-302-19835-2PPT04继承与接口.ppt

Java基础教程 教学课件 ppt 作者 978-7-302-19835-2PPT04继承与接口.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 继承与接口 4.1 继承 4.2 接口 4.3 特殊类 4.1 继承 4.1.1 继承的含义 4.1.2 子类的继承性的访问控制 4.1.3 子类对象的构造过程 4.1.4 子类的内存分布 4.1.5 子类对象的成员初始化 4.1.6 成员变量的隐藏 4.1.7 方法的重载与方法的覆盖 4.1.8 this关键字 4.1.9 super关键字 4.1.10 对象的上、下转型对象 4.1.1 继承的含义 类之间的继承关系是客观事物之间遗传关系的直接模拟,它反映了类之间的内在联系以及对属性和方法的共享,即子类可以沿用父类(被继承类)的某些特征。当然,子类也可以具有自己独立的属性和操作。例如,飞机、汽车和火车属于交通工具类,汽车类可以继承交通工具类某些属性和方法。 4.1.1 继承的含义 Java中继承实际上是一种基于已有的类创建新类的机制,是软件代码复用的一种形式。利用继承,我们首先创建一个共有属性和方法的一般类(父类或超类),然后基于该一般类再创建具有特殊属性和方法的新类(子类),新类继承一般类的状态和方法,并根据需要增加它自己的新的状态和行为。 父类可以是自己编写的类也可以是java类库中的类。Java不支持多重继承,即子类只能有一个父类。 4.1.1 继承的含义 如果要声明类B继承类A,则必须满足两个条件:(1) 类A非final ;(2) 类A是public或类B与类A同包。如果这两个条件满足则可按照以下的语法声明类B: class B extends A {… .. } 这两声明表明B是A的子类,A是B的父类。 4.1.1 继承的含义 People { float height,weight,age; //身高,体重,年龄 …… } class Students extends People{ String stdno; //学号 …… } 说明:本实例中,类Students是类People的子类。 class Animal{ public float weight; public void eat(){…} } class Mammal extends Animal{ public int heartRate; public void breath(){…} } class Cat extends Mammal{ boolean longHair; public void purr(){…} } 说明:本实例中,类Mammal是类Animal的子类,类Cat又是类Mammal的子类。 4.1.2 子类的继承性的访问控制 子类是基于父类创建的新类,它继承了父类的某些属性和方法,同时可以增添新的属性和方法。Java中子类不能访问父类的private成员,但可以访问其父类的public成员。父类的属性或方法使用其他访问控制符修饰时,子类对父类的属性或方法的继承将受到一定的限制。 4.1.2 子类的继承性的访问控制 1.子类和父类在同一包中的继承性 当子类和父类处在同一个包中时,子类可继承了其父类中不是private的成员变量和方法。继承的成员变量以及方法的访问权限保持不变。 2.子类和父类不在同一包中的继承性 当子类和父类不在同一个包中时,子类只能继承父类的protected、public成员变量和方法,不能继承父类的友好变量和友好方法。继承的成员或方法的访问权限不变。 3.子类对父类私有属性或方法的访问 子类不能直接访问从父类中继承的私有属性及方法,但可以使用公有(及保护)方法进行访问。 class A { public int a = 4; private int b = 5; protected int c = 6; public int outputB() { return b; } } public class B extends A { public int d; public static void main (String args[ ]) { B b=new B(); ba. testVisitControl (); } public void testVisitControl () { System.out.println(a); //允许 System.out.println(b); //不允许 System.out.println(outputB()); //允许 System.out.println(c);

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档