• 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的方法与成员变量,继承的成员与方法的访问权限依然不变,但子类不难继承父类的友好变量与友好方法。

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

  • 相关阅读:
    Spire.Office for Java 8.9.7 Crack
    21.Hadoop在Windows环境下的下载安装配置超详细版
    CTF/AWD竞赛标准参考书+实战指南:《AWD特训营》
    pandas笔记:读写excel
    【BOOST C++ 线程】boost::thread库的基本使用方法总结
    【HDFS】cachingStrategy的设置
    MySQL - 深入理解锁机制和实战场景
    Visual C++基础 - 使用OLE/COM操作Excel类
    使用python获取城市经纬度以及城市间的距离、火车时间、所需成本等
    记一次克隆笔记本的Window 10硬盘到新的SSD的经验
  • 原文地址:https://blog.csdn.net/qq_64131064/article/details/127571823