美文网首页
Java继承

Java继承

作者: 风雪_夜归人 | 来源:发表于2020-03-08 20:39 被阅读0次

继承:(来自菜鸟教程)

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

代码:

public class Father {
    int a = 3;

    public Father(){
        System.out.println("这是父类的无参构造方法");
    }

    public void add(int a, int b){
        System.out.println(a+b);
    }
}
public class Son extends Father{

    public Son(){
        System.out.println("这是子类的无参构造方法");
    }

    public static void main(String[] args) {
        Son son = new Son();
        int c = son.a;
        System.out.println(c);
        son.add(1,4);
    }
}
----------------------------------------------------------------------------------------
结果:
这是父类的无参构造方法
这是子类的无参构造方法
3
5
概括:子类什么方法和属性都没有,却可以使用父类的方法和属性。由此可见,只要是继承关系。子类就可以使用父类的方法和属性(构造方法无法被继承),而且,实例化一个子类的对象需要先实例化父类的一个对象。下面的列子也说明了这一点,实例化子类的对象,先去实例化父类的,然后发现父类没有无参数的构造方法,所以报错。

修改下父类的构造方法

public class Father {
    int a = 3;

    public Father(int a){
        System.out.println("这是父类的无参构造方法");
    }

    public void add(int a, int b){
        System.out.println(a+b);
    }
}

结果:


image.png
这个例子除了很好的解释了实例化子类对象要先实例化父类对象的逻辑。那如果父类有参构造方法,子类却硬要使用时(子类不新增有参构造方法情况下)。可以使用关键字super来指定父类的构造方法
public class Son extends Father{

    public Son(){
        super(1);
        System.out.println("这是子类的无参构造方法");
    }

    public static void main(String[] args) {
        Son son = new Son();
        int c = son.a;
        System.out.println(c);
        son.add(1,4);
    }
}
----------------------------------------------------------------------------------------
结果:
这是父类的无参构造方法
这是子类的无参构造方法
3
5

子类加几行代码

public class Son extends Father{
     int a = 6;
    //方法重载
    public void add(int a, int b,int c) {
        System.out.println(a + b + c);
    }

    public void subtraction(int a,int b){
        System.out.println(a-b);
    }

    public Son(){
        super(1);
        System.out.println("这是子类的无参构造方法");
    }

    public static void main(String[] args) {
        Son son = new Son();
        int c = son.a;
        System.out.println(c);
        son.add(1,4);
        son.subtraction(1,6);
    }
}
----------------------------------------------------------------------------------------
结果:
这是父类的无参构造方法
这是子类的无参构造方法
6
5
-5

总结:

根据上面几个例子可得几个结论

  1. 子类可以重载父类的方法和属性
  2. 子类可以新增方法和属性
  3. 子类可以继承父类的所有方法和属性(构造方法除外)
  4. 构造子类的对象前,先构造父类的对象(子类构造方法隐式调用父类不带参数的构造方法)
  5. super可以调用父类对象

相关文章

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • Java继承

    Java继承 一、继承类型 Java不支持多继承,但是支持多重继承 二、继承的特性 子类拥有父类非 private...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • java培训专家介绍java的特性之:继承

    java培训专家介绍java的特性之:继承 什么是继承?java特性继承又是什么?在线教育平台专家为你解答! 多个...

  • JAVA 核心笔记 || [7] 继承

    继承 被继承的类为 基类 或者 父类 类 只能单继承 不可同时继承多类 Animal.java Dog.java ...

  • 继承

    java中对于继承,java只支持单继承。java虽然不直接支持多继承,但是可实现多接口。 1:成员变量。当子父类...

  • 2017-12-29

    Java学习日记(4) 主要谈一下——继承extends 个 Tips : Java不像c++,Java是单继承(...

  • JAVA核心技术总结(五六章)继承&接口与内部类

    第五章 继承 在Java中,所有的继承都是公有继承,没有C++的私有继承和保护继承 Java同C++一样,子类不能...

  • Java初级笔记No.3(更新中)

    2018.7.26 1、Java中的继承 Java中使用extends关键字来说明继承关系。 2、继承的特性 ja...

  • Java中的继承

    Java中的继承 Java 继承 什么是继承 继承是用来描述“is-a”的关系;如果说两个对象A和B,若可以描述成...

网友评论

      本文标题:Java继承

      本文链接:https://www.haomeiwen.com/subject/azkjdhtx.html