- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承与多态性-JAVA程序设计
第4章 继承与多态性 4.1 继承的基本概念 顾名思义,继承就是子将父的东西承接过来。 Java继承的特点 1)继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。 2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。 3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。 4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。 4.2 Java继承的实现 4.2.1 继承的语法 在Java中使用extends关键字实现继承关系,格式如下: [访问控制方式] class 子类名 extends 父类名{ ... ...//成员定义 } 4.2.1 继承的语法 【实例4-1】继承的使用 class Person{ private String name;//姓名 private int age; //年龄 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 4.2.1 继承的语法 public class InheritDemo { public static void main(String[] args) { Student stu=new Student(); //新建学生对象 stu.setName(张三); //访问从父类继承的方法 stu.setAge(20); //访问从父类继承的方法 stu.setSchool(哈佛大学); //访问本类定义的方法 stu.setGrade(2); //访问本类定义的方法 System.out.println(姓名:+stu.getName()+, 年龄:+stu.getAge()+ 学校:+stu.getSchool()+,年级:+stu.getGrade()); } } 4.2.1 继承的语法 4.2.2 protected访问控制方式 父类和子类是一般类和特殊类关系,子类是需要扩展父类的功能的,在扩展父类的功能时,可能会需要使用到从父类继承的私有成员,但父类的私有成员,在子类中不能直接访问。 为此,Java提供了protected访问控制方式来解决这个问题。protected访问控制方式介于private和public之间,用protected修饰的类里的成员,向所有子类和同一个包的其它类开放其访问权限。 4.2.3 super关键字与子类对象实例化过程 子类对象实例中这些继承下来的非静态数据成员所占用的内存区域为子类对象实例中的父类子对象。注意父类子对象本身相当于一个父类对象实例。Java 语言的每一个对象实例也有一个特殊的私有数据成员,称为super,用来引用该父类子对象。super 也是一个引用变量,其类型则是它所属的对象实例的父类类型。 4.2.3 super关键字与子类对象实例化过程 【实例4-2】子类对象实例化 class Person{ public Person() { System.out.println(我是Person类的构造方法); } } class Student extends Person{ public Student() { System.out.println(我是Student类的构造方法); } } public class SuperDemo1 { public static void main(String[] args) { Student stu=new Student();//新建学生对象 } } 4.2.3 super关键字与子类对象实例化过程 【实例4-3】super关键字 class Person{ private String name; //姓名 private int age; //年龄 public Person(String name, int age
文档评论(0)