Java应用程序开发 (9).pptxVIP

  • 1
  • 0
  • 约3.8千字
  • 约 51页
  • 2019-07-17 发布于辽宁
  • 举报
学习情境九 继承 ;知识目标 理解父类、子类的概念; 理解子类继承父类的成员、子类对象包含父类对象的概念; 理解什么是多态,如何利用类的继承性实现多态; 理解什么是抽象方法,什么是抽象类。 能力目标 能够正确定义父类和子类; 能够正确使用super关键字; 能够正确使用字段的隐藏和方法的覆盖,能够利用final关键字来阻止字段的隐藏和方法的覆盖; 能够在子类的构造方法中正确调用父类的构造方法; 能够正确利用类的继承性实现多态性编程; 能够正确定义并使用抽象方法、抽象类。;情景再现与任务分析;八个任务;任务七、利用继承实现多态 多态性编程可以利用类的继承性来实现,主要利用父类数据类型的变量能够引用子类对象这一特性。 任务八、研究抽象方法和抽象类 抽象方法和抽象类用于多态性编程之中。;任务一 体验子类和父类;;Java中定义了Object类,它是所有类的祖先,它本身没有父类。 除了Object类之外,任何类都有并且只能有一个直接的父类(单向继承)。 如果一个类没有明确指明其父类,那么它就自动隐含Object为其父类。 类可以从其它类派生,而派生类又从另一个类派生,如此这般,直到最高层次的类,即Object类。因此可以说,任何一个类都是从以Object类为起点的继承链条中派生出来的。 在继承体系的顶部的Object类具有所有类共同的属性,而靠近继承体系底部的类具有各自独特的属性。;;【例9-1】认识超类和子类;3.在chp09.ex.ex9_1包中创建子类。类名是Student,文件名是Student.java。;4.在chp09.ex.ex9_1包中创建应用程序主类。类名是UseStudent,文件名是UseStudent.java。;任务二 体验子类继承父类的成员;;图9-3展示了类的继承规则。 在同一个包中,只有用private修饰的成员不能被子类所继承。 在不同包之间,只有用public和protected修饰的成员才能被子类所继承。 注意:子类和父类不一定是处在同一个包中。 虽然图9-3中只画出了类的字段的继承规则,但是方法也是类的成员,因此方法的继承规则与字段的继承规则是一样的。;【例9-2】以图9-3为例,验证类的继承性;4.体验类的继承。;任务三 体验子类对象包含父类对象;;一般情况???,根据面向对象编程中封装的原理,类的字段用private进行修饰,因此,这些字段不会被子类所继承。 但是访问这些字段的getXxx()和setXxx()方法可以被子类所继承,因为它们的修饰符是public。 因此,即使父类对象的成员不能被子类对象所继承,但是仍然可以通过间接的方法被访问到。;【例9-3】访问父类中私有的变量;任务四 研究子类构造方法与父类构造方法;Eclipse操作 添加构造方法,给Person类添加带一个参数的构造方法 1.在Person.java的编辑窗体中右击鼠标,在弹出菜单中选择“Source-Generate Constructor using Fields…”,Eclipse弹出“Generate super constructor using Fields”对话框。如图9-7。 2.在Select fields to initialize选择框中,根据需要勾选字段(本例只有name),然后,在Insertion point下拉框中选择将要产生的构造方法代码的插入位置,其余的用默认值。最后,点击OK按钮。Eclipse自动产生构造方法: public Person(String name) { super(); //必须是第1条语句 this.name = name; } 可以用相同的办法给Student类添加构造方法: public Student(String name, String id) { super(name); this.id = id; };添加好构造方法后,可以修改Student类中的main()方法: public static void main(String[] args) { Student student = new Student(张某某,2013_002); System.out.println(student); } 3.重新运行程序,输出如下: 我是一个学生,我的名字是:张某某,我的学号是:2013_002;注意: 如果构造方法中没有显式地调用父类中的构造方法,Java编译器会自动地添加父类的无参数的构造方法。 但是,如果父类中没有无参数的构造方法,就会产生一个编译错误。 Object类中就有一个无参数的构造方法,所以如果一个类的直接父类是Object时,就不会有问题。 程序员自己编写的类中最好要提供一个无参数的构造方法。;任务五 体验隐藏字段;1.使用supe

文档评论(0)

1亿VIP精品文档

相关文档