Java中的继承

Posted 真正的小明被占用了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的继承相关的知识,希望对你有一定的参考价值。

一.什么是继承?

继承就是一个类继承类,继承的类叫做子类,被继承的叫做父类。子类拥有父类的所有字段,但是子类只能调用父类属性为public和protected的字段(在同一包下子类可以调用父类的包访问权限的字段)。

 

二.继承的意义?

继承和组合都是快速实现了代码复用的方式,但是两者又有不同点。

 

三.语法

使用关键字extends,列子:

public class B extends A {//B类继承了A类
    public static void main(String[] args) {
        
    }
}

 

使用关键字 extends后B类将自动拥有A类的所有的方法和域

 

 四.关键字super

当子类继承一个父类后,如果他想调用一个方法中的调用父类的方法,那他该怎么办呢?

 

public class A {
    

    public void print() {
        System.out.println("A类中print方法!");
    }
}
public class B extends A {//B类继承了A类
    public void print() {
        print();//想调用父类的prinnt函数但是这样的操作将会倒置无限递归
    }
    public static void main(String[] args) {
        B b=new B();
        b.print();
    }
}

 

 这时使用关键字 super,就可以调用父类的方法print,代码如下:

  public void print() {
        super.print();//想调用父类的prinnt函数但是这样的操作将会倒置无限递归
    }

 

五.初始化问题

 1.顺序问题

按照逻辑顺序来讲,想要初始一个子类那么必定先要初始化其父类,所以在子类的构造器中首先要做的事情就是初始化父类,同样初始化父类还是使用super关键字

    public B() {
        super();
    }

 

 2.参数问题

父类的构造器中有几个参数那么子类中的构造器也要有几个参数,并且类型相同。

    public A(int intNum, String str, long longNum) {
        super();
        this.intNum = intNum;
        this.str = str;
        this.longNum = longNum;
    }




        public B(String str, int intNum, long longNum) {
        super(intNum,str,longNum);
    }

 

六.子类的重写代码和添加新的字段3

在子类中你可以添加新的字段,然后再构造器中对其进行初始化。

对于重写代码就是将父类的函数在子类中进行一次新的定义,赋予其新的功能。

 

以上是关于Java中的继承的主要内容,如果未能解决你的问题,请参考以下文章

LockSupport.java 中的 FIFO 互斥代码片段

java中封装,继承,多态,接口学习总结

(转) Java中的负数及基本类型的转型详解

有没有办法关闭代码片段中的命名建议?

Java中的继承和多态

Java中super关键字的作用与用法