• Java:面向对象编程及继承


     无论前方有什么困难,我们都要保持一颗向上的心,不认命,不信命,就像图片上面的玫瑰一样,迎着暴雨而上,加油,奋斗的你!

    引言:我们之前学过面向对象编程的一个重要特点,数据的封装性;本章讲的是面向对象编程的另一个特点——继承。

    壹、继承

    1、子类与父类

    (1)继承的定义:继承是一种由已有的类创建新类的机制。

    (2)Java规定,继承下来的新类叫做子类,被继承的类叫做父类(超类);这里注意子类只有一个父类,这与c++不同,需要大家关注一下。

    (3)继承的格式

             

    1. class 子类名 extends 父类名{
    2. .........
    3. }

    (4)注意点:

    第一个就是(2)中知识点;第二个是,如果这里省略了extends,那么这里就默认了继承Object类,Object是Java.lang中类。

    2、子类的继承性

    (1)继承:就是子类可以继承父类的公有或者保护属性的变量或方法,换句话话说,从父类继承下来的,那就是你的,可以直接拿过来用。并且你还可以重写。我会在下面的代码里面为你们具体说明。

    2.1   子类与父类由两种情况

    (1)子类与父类在同一个包中 ,就是在如下图所示的src包里面。

    这种情况,也就很自然地子类继承了父类的不是private的成员变量作为自己的成员变量,也自然地继承了父类中不是private的方法作为自己的方法。继承下来的变量和方法所拥有的访问权限不变。

    这里需要注意,子类继承下来的变量与方法可以方法权限,但不可以变小,例如,父类中的protected权限可以在子类中放大为public权限。

    (2)代码操作(代码一定要自己敲一遍,否则是没有效果的

    父类:

    1. //初学者这里注意一下,一个Java
    2. 代码里面只能由一个public类,也就是主类
    3. public class Xues {
    4. //定义两个公有变量
    5. public String name="sz";
    6. public int age=21;
    7. //定义一个无参构造方法,便于后面get()方法的操作,具体的我会在下一章讲解
    8. public Xues() {}
    9. //定义带参函数
    10. public Xues(String name,int age)
    11. {
    12. this.name=name;
    13. this.age=age;
    14. System.out.println("F2");
    15. }
    16. public int getAge() {
    17. return age;
    18. }
    19. public String getName() {
    20. return name;
    21. }
    22. public void say( )
    23. {
    24. System.out.println("姓名:"+name+",年龄:"+age);
    25. }
    26. }

    子类:

    1. public class Xuesson extends Xues{
    2. //定义子类所有的变量
    3. public int score=100;
    4. public Xuesson(){}
    5. public Xuesson(String name,int age,int score)
    6. {
    7. this(name,age);//直接访问父类构造参数
    8. this.score=score;
    9. }
    10. //定义super()方法,便于上面this指针对于父类的访问,方便操作
    11. public Xuesson(String name, int age) {
    12. super();
    13. }
    14. public int getScore() {
    15. return score;
    16. }
    17. //重写,这里say()方法,如果去掉的话,那么下面的b.say()就是访问父类的,这就体现了继承性
    18. public void say()
    19. {
    20. System.out.println("姓名:"+name+",年龄:"+age+",分数:"+score);
    21. }
    22. public static void main(String[] args) {
    23. Xuesson b=new Xuesson();
    24. b.say();
    25. }
    26. }

    (2)子类与父类不在同一个包中

    如果子类与弗雷不在一个包里,则子类继承了父类的protected、public的方法与成员变量,继承的成员与方法的访问权限依然不变,但子类不难继承父类的友好变量与友好方法。

    以上内容若有不理解的内容,可以私信我,我看到的话一定会回复,一定要保持学习,相信你的坚持终将美好!

  • 相关阅读:
    CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
    天气这么好,都外出了。顺便了解一下漏桶算法
    时间序列预测系列之循环神经网络
    idea手动创建webapp(在main文件夹下)
    使用 promise 重构 Android 异步代码
    MyBatis入门
    GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用
    自动化搜索ARX密码差分特征的方法
    python+django网吧会员管理系统
    yolov6解锁了新姿势
  • 原文地址:https://blog.csdn.net/qq_64131064/article/details/127571823