zoukankan      html  css  js  c++  java
  • Java学习

    Java 继承

    继承(inheritance)是面向对象编程的三要素(封装、继承、多态)中最重要的一个。

    Java中同样拥有继承的概念。子类继承父类,父类被子类继承。

    Java不同于C++,类的继承只能是单继承。一个子类只能有一个直接父类。

    继承的优势

    子类继承父类的状态和行为,有以下两个优势:

    • 可以修改父类的状态或重载父类的行为
    • 可以添加新的状态和行为

    使用继承

    使用关键字extends来实现继承

    class Student extends Person{
    	// ...
    }
    

    如果没有extends,则该类默认为java.lang.Object的子类

    所有的类都是通过直接会间接继承自java.lang.Object得到的

    继承包括字段的继承和方法的继承。

    子类既可以使用父类的成员、方法,也可以重新定义一个类型完全相同的成员、方法。这种行为称为修改(覆盖) (@Override)

    此外,继承同样可以进行方法的重载。

    this 和 super

    • this为本对象实例的引用,可以在对象的成员方法中调用this来访问当前对象的字段或方法。
    class Person{
        String name;
        Person(){};
        Person(String name){
            this.name = name;
        }
        void sayHello(){
            System.out.println("Person " + name + " Say Hello to you.");
        }
    }
    
    • super也是本对象实例的引用,可以用super来调用父类的字段或方法。super主要用来解决这些问题
      1. 子类方法已将父类方法覆盖,但需要在子类中访问父类的方法
    class Student extends Person{
        String id;
        Student(){};
        void sayHello(){
            System.out.println("Student " + name + "Say Hello to you");
        }
        void testSuper(){
            super.sayHello();
            this.sayHello();
        } 
    }
    

    ​ 2. 子类的构造方法一部分需要用到父类的构造方法

    class Student extends Person{
        String id;
        Student(){};
        Student(String name,String id){
            super(name); // 调用父类的构造方法
            this.id = id;
        }
    }
    
    ---- suffer now and live the rest of your life as a champion ----
  • 相关阅读:
    基于jquery的弹幕实现
    Cookie在顶级域名、二级域名和三级域名之间共享的情况
    报错:Win10 这台计算机中已经安装了 .NET Framework 4.5.2/4.6.1/4.7.1等等任何版本 或版本更高的更新
    Unity中的Text内容有空格导致换行
    逆波兰表达式
    Java基础03 byte[] 与 16进制字符串之间的转换
    nacos Linux 单机模式配置
    Oracle 常用SQL
    软件安装01 Linux下redis安装
    Java基础04 JSONObject 与范型对象转换
  • 原文地址:https://www.cnblogs.com/popodynasty/p/13841455.html
Copyright © 2011-2022 走看看