首頁 > 軟體

Java超详细分析继承与重写的特点

2022-05-13 21:11:42

概念:继承是物件导向语法三大特征之一,继承可以降低程式码的沉余度,提高程式设计的效率。通过继承子类可以随意呼叫父类别中的某些属性与方法,一个子类只能继承一个父类别,一个父类别可以被多个子类继承。它就好比与我们显示生活中孩子继承父亲的财产。重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类别的方法,就好比金毛与哈士奇他的特征都是来自狗,仓鼠与松鼠他们他们的特征来自老鼠,而他们身上的不同属于基因突变就相当于重写

继承的特点:

1):java中只支援单根继承,即一个类只能有一个直接父类别,一个父类别可以有多个子类

2):将子类公共的属性抽取出来生成父类别属性用于继承

3):子类无法继承或重写父类别private修饰的属性和资源

重写的特征:

1).子类重写的方法必须和父类别被重写的方法具有相同的方法名称、参数列

2).子类重写的方法的返回值型别不能大于父类别被重写的返回值型别

3).子类重写的方法使用的存取许可权不能小于父类别被重写的方法的存取许可权子类不能重写父类别中宣告为private(即私有属性)许可权的方法

4).子类方法丢掷的异常不能大于父类别被重写方法的异常

需要用的的方法或关键字:

extends:我们可以通过此关键字来进行继承,在关键字后写入需要被继承的类或方法既可实现继承

super():我们可以通过此方法来呼叫我们继承后的父类别的属性或方法使用

测试类:

package com.ytzl.total;
/*继承*/
public class inherit {
    public static void main(String[] args) {
        son son = new son();//呼叫子类
        System.out.println(son.a);//呼叫子类中的属性
        son.a=2;//可以通过子类改变父类别中的属性
        System.out.println("更改后的父类别属性"+son.a);
        son.myfather();//带呼叫父类别的方法
        son.money();//呼叫重写的方法w
        son.jng();//呼叫静态修饰方法
        son.jing();
        System.out.println("子类通过继承方法呼叫父类别中的属性=>"+son.b);//呼叫父类别中的静态属性
        son.two();
    }
}

父类别:

package com.ytzl.total;
public class father {
    int a=0;
    static int b=2;
    private int one=4;//被私有属性修饰后将不能别子类呼叫或继承,
    protected int two=0;
    protected void two(){//该方法只能被子类继承重写不能被呼叫
        System.out.println("我是protected方法");
    }
    public void setOne(int one) {
        this.one = one;
    }
    public void money(){
        System.out.println("我是被子类重写的方法");
        System.out.println("父类别的属性=>"+a);
    }
    public void myfather(){
        System.out.println("我是被子类继承的方法");
    }
    public static void jing(){
        System.out.println("你好");
    }
    public static void jng(){
        System.out.println("你好");
    }
    private void dong(){
        System.out.println("私有方法");
    }
}

子类:

package com.ytzl.total;
public class son extends father{
    //方法的重写
    public void money(){
        super.money();//通过继承过去父类别的money方法里的内容
        System.out.println("重写后的方法");
        System.out.println("被继承后"+super.a);//通过super来继承父类别的属性
        System.out.println("继承后的protected属性=>"+super.two);//通过super来继承protected方法
        super.two();
    }
    public static void jing(){//不能重写静态方法static
        System.out.println("不好");
    }
    private void dong(){//不能重写或者继承父类别的私有方法
        System.out.println("私有方法");
    }
    protected void two(){//重写后的protected方法
        System.out.println("我是重写后的protected方法");
    }
}

执行后的结果:

到此这篇关于Java超详细分析继承与重写的特点的文章就介绍到这了,更多相关Java继承与重写内容请搜寻it145.com以前的文章或继续浏览下面的相关文章希望大家以后多多支援it145.com!


IT145.com E-mail:sddin#qq.com