类的继承

  • 一:继承
    通过extends关键字可以实现类与类的继承:
    class 子类名 extends 父类名 {
    }
    父类:基类,超类
    子类:派生类

  • 二:继承的作用
    举个例子,学生和老师都属于人类

    学生类:
    成员变量:name,age
    构造方法:无参,带参
    成员方法:getXxx()/setXxx(),eat(),sleep(),study()

    老师类:
    成员变量:name,age
    构造方法:无参,带参
    成员方法:getXxx()/setXxx(),eat(),sleep(),teach()

    按照我们刚才对继承的概述,我们可以找一个父类。

    人类:
        成员变量:name,age
        构造方法:无参,带参
        成员方法:getXxx()/setXxx(),eat(),sleep()    
    
    学生类:继承人类就可以了。
    老师类:继承人类就可以了。
    
  • 三:继承的好处

    A:提高了代码的复用性
        多个类相同的成员可以放到同一个类中
    B:提高了代码的维护性
        如果功能的代码需要修改,修改一处即可
    C:让类与类之间产生了关系,是多态的前提
    

    注意:
    A:Java只支持单继承,不支持多继承。
    B:Java支持多层(重)继承(继承体系)。

  • 四:继承间构造方法的关系:

    子类中所有的构造方法默认都会访问父类中空参数的构造方法(super())
    

    为什么呢?
    因为子类会继承父类中的数据,可能还会使用父类的数据。
    所以,子类初始化之前,一定要先完成父类数据的初始化。
    每个子类的构造方法的第一行,有一条默认的语句:
    super();

    注意:仅仅是完成数据的初始化,创建对象目前必须用new申请空间。
    

    假如父类没有无参构造方法,该怎么办呢?
    A:调用父类的其他构造方法。带参构造。
    怎么访问呢?
    super(…)

    注意:
    super(…)或者this(….)必须出现在第一条语句上。
    因为如果可以放后面的话,就会对父类的数据进程多次初始化。所以,只能放在第一条语句上。

    建议:
    永远给出无参构造方法。

  • 实例:

class Fu2{

    public void show(){
        System.out.println("fu2中的show方法");
    }

    public void method(){
        System.out.println("fu2的method方法");
    }

    private void function(){
        System.out.println("fu2的function方法");
    }

}

class Zi2 extends Fu2{
    public void show(){
        System.out.println("zi2中的show方法");
    }

    public void sleep(){
        System.out.println("睡觉的方法");
    }

}


public class ExtendsDemo4 {
    public static void main(String[] args) {
        //创建zi2的对象
        Zi2 z = new Zi2();
        z.sleep();
        z.show();
        z.method();
        //z.fuction();//子类无法继承父类中私有的方法
    }

}

输出是:![这里写图片描述](http://img.blog.csdn.net/20170413143013427?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWWFwaHN0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值