第七周总结

第七周总结

继承

继承的目的和缺陷

1.解决代码冗余重复,提升代码效率,解决同类型的问题。

2.加强父类,修改父类方法,实现对应关系,还可以写特有的方法,青出于蓝而胜于蓝,在便捷的同时又能实现想要的功能。

3.体现了重写和多态的重要性。

4.耦合太高,容易出错。

5.只能单继承,不能多继承。

例如写一个动物园

动物之间有很多相同的性质和属性,例如动物的名字,科类。

当类和属性达到一定数量的时候,代码的重复结构很多,用继承能够很好的解决这个问题(entends)

class Animal//写一个animal父类
{
    Animal(){}//一定要写无参构造,当没有写无参构造的时候,系统会自动分配一个无参构造,但是如果自己写了有参构造而没有写无参构造的时候,系统将不会自动分配一个无参构造!
    String name;//定义一个共同属性
    public void Eat(String food)//写一个共同行为的方法,后面继承的子类可以对其进行重写
    {
        System.out.println(name+"吃"+ food );
    }
}
class Dog extends Animal//继承Animal这个父类
{
    Dog(){}//无参构造
    Dog(String name)//有参构造
    {
        this.name = name;//给name赋值
    }
    public void f()//实现特有功能
    {
        System.out.println("Dog能守门");
    }
}
public class Test1 {
    public static void main(String[] args)
    {
        Dog d = new Dog("Dog");
        d.Eat("骨头");
        d.f();
    }
}

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RbQBEdVP-1649910592924)(C:\Users\86199\Desktop\QQ图片20220411191705.png)]

父类型引用指向子类型对象
public class Test1 {
    public static void main(String[] args)
    {
        Animal a1 = new Dog();//属于自动类型装换,父类型引用指向子类型对象
        a1.f();//试试调用子类型特有方法
    }
}
编译结果

在这里插入图片描述

由此可见,父类型引用指向子类型对象是可以的,但是会牺牲掉子类的特有方法

值得注意的是,只能在继承中栈堆类型不一致!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值