Java中的继承

一、什么是继承

继承是面向对象语法的三大特征之一。继承可以降低代码编写的冗余度,提高编程的效率。通过继承,子类获得了父类的成员变量和方法。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。简单来说,继承就是一个类A继承了另一个类B的所有成员,并且能够访问使用那些非私有成员。

二、继承的作用

当多个类中存在相同属性和行为时,我们可以将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。因此继承的一个很重要的意义就是能够减少代码的冗余。

所以,继承的作用就是通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

三、继承的语法


class 父类{
    ...       //成员变量、成员方法
}
class 子类 extends 父类{
    ...       //类体
}

四、实例

现有三个类

学生类 属性:姓名,年龄 行为:吃饭,睡觉

老师类 属性:姓名,年龄,薪水 行为:吃饭,睡觉,教书

班主任 属性:姓名,年龄,薪水 行为:吃饭,睡觉,管理

从这三个类中我们能抽离出三个类中相同的属性和行为,那么我们就可以为这三个类设置一个父类具有其共同的属性和行为,是这三个类从中继承,避免代码的重复性。

父类

public class Human {
    String name;
    int age;
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

子类

public class Teacher extends Human {
     double salary;
     public void teaching(){
         System.out.println("上课");
     }
}

我们可以在测试类中定义子类的对象,通过子类的对象来调用父类中的属性和方法

五、方法的重写

父类继承下来的方法不满足子类需要的时候,可以写一个和父类声明一样的方法,方法体中逻辑重新实现,这个子类重新定义的方法就是重写后的方法。重写后的方法会覆盖父类的功能,因此成为方法重写,方法的覆盖。

注意:在进行方法的重写的时候,我们要声明一个一样的方法,对其中的逻辑体进行重写。

声明一个一样的方法即是说:方法名和形参列表都不能改变,这与方法的重载不同

eg:方法的重载是在同一个类中存在着同名但形参列表不同的方法。

声明:修饰符 返回值类型 方法名 (参数列表) {

方法体;
  
}

!!!注意!!!

  在进行方法的重写的过程中,我们要保证子类重写的父类的方法,其子类的权限必须大于等于父类的权限。

也就是说当父类的方法是被public所修饰时,子类的方法也必须是用public修饰。

当父类的方法是用priva修饰时,那子类的方法可以用public或者priva修饰。

六、super关键字

super关键字的作用与this关键字作用类似,this关键字用来区分全局变量和局部变量,而super关键字则用来区分子类和父类中同名的变量

class A{
    int num1 = 100;
    int num3 = 300;//父类的成员变量

    private int num4;

    public int getNum4() {
        return num4;
    }

    public void setNum4(int num4) {
        this.num4 = num4;
    }
}

class B extends A{
    int num2 = 200;
    int num3 = 400; //本类成员变量


    public void show() {
        int num3 = 500;//局部变量

        System.out.println(num3);//500  //局部变量
        System.out.println(this.num3);//400  本类的成员变量
        System.out.println(super.num3);//300   super:专门用于访问父类空间的关键字
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值