> 文档中心 > JAVA基础 面向对象下(1)

JAVA基础 面向对象下(1)


文章目录

  • 前言
  • 一、类的继承
  • 二、方法重写
  • 三、super访问父类构造方法
  • 总结

前言

        JAVA基础 面向对象上知识点总结完了,把这个面向对象下的知识点总结下。然后准备发点有意思的js知识方面。如果下面的知识看的不太懂建议大家先看下我前面发的面向对象上的知识点哦。


一、类的继承

1.案例描述

        练习目标

                1.了解类继承的意义和作用

                2.掌握如何实现类的继承

        需求分析

                在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。 为了让初学者熟悉类的继承,本案例将演示类的继承并编写测试类验证子类是否拥有父类的可继承成员。

        设计思路(实现原理)

                1.设计两个类 Student 和 Teacher

                2.抽取两个类共同的内容(如:吃饭、睡觉)封装到一个类 Person 中,各自特有的部分保留在 各自类中。

                 3.让学生类继承 Person 类,老师类也继承 Person。

                4.编写测试类 Example01,测试 Student 类和 Teacher 是否继承了 Person 类的成员

2.、案例实现

        父类 Person,实现继承代码

package Mianxiangduixiangxia;public class Person {String name;//姓名// 吃饭的功能void eat() {System.out.println("吃饭 ");}// 睡觉的功能void sleep() {System.out.println("睡觉");}}class Student extends Person {// 学号int sid;}class Teacher extends Person {// 工号int tid;// 教课的功能void teach() {System.out.println("老师教课");}}

        Example01代码

package Mianxiangduixiangxia;public class Example01 {public static void main(String[] args) {Student s = new Student();s.eat();s.sleep();System.out.println("----");Teacher t = new Teacher();t.eat();t.sleep();t.teach();}}

        运行结果

                                

        3、案例总结

                1、在 Java 中,多个类可以继承一个父类,但是一个类不能直接继承多个类,一个类只能有一个直接 父类。

                2、父类是由子类不断抽取而来的,不断地抽取就形成了体系结构,这个结构称为继承体系结构。

                3、子类在继承父类的时候,会自动拥有父类所有的成员。

                4、继承的好处是划分了类的层次性,实现了代码重用、扩展了程序功能

二、方法的重写

1.案例描述

        练习目标

                1.了解方法重写的意义和作用

                2.掌握如何进行方法重写

        需求分析

              在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些 修改,即对父类的方法进行重写。为了让初学者掌握方法的重写,本案例将编写一个类 NewPhone, 该类继承 Phone 类并对 Phone 类的 call()方法进行重写。

        设计思路(实现原理)

                1.定义一个类 Phone,编写方法 call(),表示打电话功能

                2.定义一个 Phone 的子类 NewPhone,重写父类 call()方法,让它除了打电话功能外还具有开启语 言和关闭语言功能。

                3.编写一个测试类 Example02,分别调用重写前和重写后的 call()方法

2.、案例实现

        定义 Phone 及其子类 NewPhone,子类对父类中的 call()方法重写,代码

package Mianxiangduixiangxia;public class Phone {void call() {System.out.println("打电话");}}class NewPhone extends Phone {void call() {System.out.println("开启语音");super.call();System.out.println("关闭语音");}}

        定义测试类 Example02,代码

package Mianxiangduixiangxia;public class Example02 {public static void main(String[] args) {System.out.println("--重写前--");Phone phone = new Phone();phone.call();System.out.println("--重写后--");Phone newPhone = new NewPhone();newPhone.call();}}

        运行结果

                ​​​​​​​        

3.案例总结

                1、子类中需要对继承自父类的方法进行一些修改,这时就用到方法重写。

                2、在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。

                3、子类方法的访问修饰权限不能小于父类的。

                4、重写的主要优点是能够定义子类特有的特征

三、super访问父类构造方法

1.案例描述

        练习目标

                1.掌握如何在子类构造方法中使用 super 关键字访问父类构造方法

        需求分析

              在子类的构造方法中一定会调用父类的某个构造方法,如果想指定调用类父类中的哪个构造方法, 可以使用 super 关键字来实现。为了让初学者掌握 super 关键字的用法,本案例将分别设计 Fu 类及其 子类 Zi,在 Zi 类的构造方法中使用 super 关键字访问

        设计思路(实现原理)

                1.编写一个 Fu 类,在类中定义无参构造。

                2.Zi 类继承 Fu 类,子类中也定义无参构造方法,在构造方法中使用 super 关键字调用 Fu 类的构 造方法。

                3.定义测试类 Example05

2.案例实现

        编写 Fu 类及其子类 Zi,在 Zi 类构造中使用 super关键字调用 Fu 类构造方法,代码

package Mianxiangduixiangxia;public class Fu05 {Fu05() {System.out.println("Fu类构造方法!");}}class Zi05 extends Fu05 {Zi05() {super();//在子类构造中调用父类构造System.out.println("Zi类构造方法!");}}

        定义测试类 Example05,代码

package Mianxiangduixiangxia;public class Example05 {public static void main(String[] args) {Zi05 zi = new Zi05();}}

          运行结果

        ​​​​​​​        ​​​​​​​        

3.案例总结

                1.通过 super 调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。

                2.在子类的构造方法中通过 super 指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象 时,会自动调用父类无参的构造方法。

                 3.被调用的父类构造方法,必须是非 private 的

 

总结

挑重要的部分写了以下,这是JAVA基础 面向对象(4)部分,也是面向对象下的第一部分。估计最少还得干2次吧。没看过前面的面向对象上的大家可以先去看面向对象上的哦。有助于更好的理解面向对象部分的知识点。

钢筋混凝土切割网