Java继承

封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为

继承:Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承             关系

例如:public class Student extends Person

Student 成为子类(派生类),Person成为父类(基类或超类)

使用继承的好处:①可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性

                             ②子类可以在父类的基础上,增加其他的功能,使子类更强大

什么时候用继承:当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可                                 以考虑使用继承来优化代码

例如:Student中有姓名,年龄;Teacher中也有姓名,年龄;就可以把姓名年龄放到Person中,               因为学生、老师都是人,所以可以把Person作为父类,Student  Teacher作为子类,当                   Student  Teacher想用时直接继承父类中的就可以了

继承的特点:Java只支持单继承,不支持多继承,但支持多层继承

                     单继承:一个子类只能继承一个父类

                     不支持多继承:子类不能同时继承多个父类

                     多层继承:子类A继承父类B,父类B可以继承父类C;B是A的直接父类,C是A的间                                           接父类。

每一个类都直接或间接继承于Object

练习:4种动物分别有以下行为

布偶猫:吃饭、喝水、抓老鼠

狸花猫:吃饭、喝水、抓老鼠

哈士奇:吃饭、喝水、看家、拆家

泰迪:吃饭、喝水、看家、蹭一蹭

画图:从下往上画:下面子类,上面父类

核心:1.共性内容抽取; 2.子类是父类中的一种

//权限修饰符是public,如果改成private:子类就无法访问了
//注意:子类只能访问父类中非私有的成员

Animal:

package a04extendsdemo1;

public class Animal {
    //权限修饰符是public,如果改成private:子类就无法访问了
    //注意:子类只能访问父类中非私有的成员
    public void eat(){
        System.out.println("吃东西");
    }
    public void drink(){
        System.out.println("喝水");
    }
}

Cat:

package a04extendsdemo1;

public class Cat extends Animal{
    public void catchMouse(){
        System.out.println("抓老鼠");
    }

}

Dog:

package a04extendsdemo1;

public class Dog extends Animal{
    public  void lookHome(){
        System.out.println("看家");
    }
}

Ragdoll:

package a04extendsdemo1;

public class Ragdoll extends Cat {

}

LiHuaMao:

package a04extendsdemo1;

public class LiHuaMao extends Cat {
}

Husky:

package a04extendsdemo1;

public class Husky extends Dog {
    public void breakHome() {
        System.out.println("哈士奇拆家");

    }
}

Teddy:

package a04extendsdemo1;

public class Teddy extends Dog {
    public void touch() {
        System.out.println("泰迪蹭一蹭");
    }
}

Test:

package a04extendsdemo1;

public class Test {
    public static void main(String[] args) {
        //创建对象并调用方法

        //1.创建布偶猫对象
        Ragdoll rd=new Ragdoll();
        rd.eat();
        rd.drink();
        rd.catchMouse();

        System.out.println("-------------------");
        //2.创建哈士奇的对象
        Husky h=new Husky();
        h.eat();
        h.drink();
        h.lookHome();
        h.breakHome();
    }
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值