写点什么

java 零基础入门 - 继承

作者:喵手
  • 2022 年 7 月 13 日
  • 本文字数:2798 字

    阅读完需:约 9 分钟

java零基础入门-继承

哈喽,各位小伙伴们好,我是喵手。

今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流 学 习,互相学习,才能成长的更快,对吧。

我是一名 java 开发,所以日常接触到最多的就是 java 啦,所以我趁自己有空,就来好好回忆,把自己学到的会的,进行输出,不图什么有回报,只想能帮助到更多的小伙伴,就好。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对喵手我创作道路上最好的鼓励与支持!

一、概述

       论前几期啊,我们是分别讲了Object类Date类FormDate类Calendar类System类StringBuilder类,不知道大家掌握的如何,如果没有及时巩固的同学,可以看我这里,我给大家罗列了下,快速学习通道,只希望能帮助到大家更好的学习与成长,这就是我写作的初衷。

二、前言

       上几期我们是重点学习了 File 类、String 类型等基础知识。而这一期我要给大家讲一个基于以前讲对象时提到的,对象的三大特性,封装、继承、多态。而今天我就重点给大家讲一期对象的特性之一继承。

对于对象继承,你们又了解到多少与它有关的知识点呢?今天就让我带着大家走近它,近距离观察,感受它所带来的优势,既然被称为三大特性之一,那肯定有啥过人之处。

三、本期教学目标

  • 掌握何为继承

  • 了解类、超类与子类区别

  • 掌握继承的使用特点

  • 掌握如何继承

  • 掌握如何定义子类

  • 掌握如何定义覆盖方法

  • 掌握子类构造器

  • 掌握继承层次关系

  • ...

四、正文

1️⃣概念

我们都知道,面向对象编程,你可以从已经存在的类中定义新的类。在 Java 术语中,如果类 class1 扩展成另一个类 class2,那么 class2 被称为次类(子类、扩展类、派生类),class1 则称为超类(父类、基类)。一般用于是父类和子类。

那究竟什么是继承?总而言之,类的继承是指在一个现有类的基础上去捏造一个新的类,构建出来的新类被称作子类(子类、扩展类、派生类),现有类被称作父类(父类、基类),而且子类会自动拥有父类所有可继承的属性和方法。

如上解释,你们能理解么?

2️⃣特点

那对于继承而言,它有何特点呢?

成员属性:

       1、父类中的成员变量若是非私有的,在子类中能直接访问,若父类中的成员变量是私有变量,子类则不能直接访问。

       2、当子父类中出现同名成员变量时,若子类想访问父类中的同名成员变量,则必须使用关键字 super 来进行访问。

  • 成员方法:

       当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

       总而言之,在继承关系中,子类可以访问父类的 public 、protected 属性和方法;若子类和父类在同一个包中,则父类默认访问修饰符(default)属性和方法也可以被子类继承。父类的构造函数不能继承。

3️⃣使用

       那到底应该怎么继承呢?一个类想继承另一个类,需要用 extends 关键字来实现。

继承格式如下:

class 子类 extends 父类 {}
复制代码

       有一点需要大家注意,在 Java 中类是只支持单继承的,不允许多继承,没有多继承的概念,也就是说一个类只能有一个直接父类

例如下面这种情况就是不对的:

class A{}
class B{}
class C extends A,B{} // C类不可以同时继承A类和B类
复制代码

       但是支持多个类继承一个父类,这是可以的,比如如下示例:

class A{}
// 类B和类C都可以继承类Aclass B extends A{}class C extends A{}
复制代码

       例如 C 类继承自 B 类,而 B 类又可以去继承 A 类,这时,可以称 C 类也是 A 类的子类。

比如如下示例:

class A{}
//类B继承类A,类B是类A的子类,而类C又是类B的子类。class B extends A{} class C extends B{}
复制代码

       所以说在 Java 中,子类和父类其实是一种相对概念,一个类可以是某个类的父类,也可以是另一个类的子类。

       还有一种情况,支持多层继承,

       例如 C 类继承自 B 类,而 B 类又可以去继承 A 类,这时,可以称 C 类也是 A 类的子类。

比如如下示例:

class A{}
//类B继承类A,类B是类A的子类,而类C又是类B的子类。class B extends A{} class C extends B{}
复制代码

       所以说在 Java 中,子类和父类其实是一种相对概念,一个类可以是某个类的父类,也可以是另一个类的子类。

4️⃣覆盖方法

       对于父类而言,有些方法对子类来说不一定适用,为此,java 就支持方法重载,支持将父类的方法进行覆盖,比如如下,A 类是父类,它有一个 eat()方法,但是在子类 B 类中, 它可以对该方法进行覆盖。

先定义一个 A 类。然后写个非私有方法。

public class A {
public void eat(){ System.out.println("我要吃肉肉!"); }
}
复制代码

       再定义个类 B,继承类 A。

public class B extends A{

public static void main(String[] args) {
B b = new B(); b.eat(); }
}
复制代码

       可以看到,也可以直接使用类 A 的 eat()方法。

       但如果类 B 不想 eat()方法执行类 A 的逻辑,想自定义?怎么办?那就直接对该 eat()方法进行方法重载即可。比如如下:

public class B extends A{
public void eat(){ System.out.println("我要吃素!!不吃肉肉"); } public static void main(String[] args) {
B b = new B(); b.eat(); }
}
复制代码

我们可以来看下,控制台其打印内容:

       是不是输出了自定义的内容啊。那如果又想调用父类的 eat()方法呢?那像这种情况,怎么区分调用呢?也不怕可以使用特殊的关键字 super 来解决这个问题。

public void eat(){        System.out.println("我要吃素!!不吃肉肉");        super.eat();    }
复制代码

可以看控制台,是不是直接就调用了 A 类的 eat()方法。

5️⃣继承层次

       对于继承,不仅限于一定层次。一个祖先类可以有多个子孙类,也可以在子孙关系下继续延续下去。虽然对于 C++,一个类可以有多个超类,但是 java 不支持多重继承,但也提供了雷士多重继承的功能,这个我们后续来讲。

​​​... ...

       好啦,以上就是本期内容的全部教学内容啦,如果对文中的任何知识点有疑问,欢迎评论区评论留言呀,我看见都会一一解答的。

五、文末

        教学是结束了,但是有些话不知我但讲不当讲,啊哈哈, 可我还是想说给你们听听。如下是我很喜欢的一句话,我打算送给你们,希望我们都能变得更好更优秀。

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

-------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

-------------------------------------------

发布于: 20 小时前阅读数: 4
用户头像

喵手

关注

还未添加个人签名 2022.07.05 加入

还未添加个人简介

评论

发布
暂无评论
java零基础入门-继承_Java_喵手_InfoQ写作社区