理解继承是什么

什么是继承

继承(lnheritance):面向对象的三大特性之一

  • 定义

    • 一个类获取现有的类的所有属性和行为的机制
    • 创建基于现有的类的新类,可以重用现有的类的属性和方法
    • 可以在新创建的子类中添加属性和方法

    在这里插入图片描述

  • 作用

    • 有效的解决代码的重用问题,使代码拓展更加灵活
    • 从始至终完整的体现了一个应用的系统,逻辑更加清晰
    • 增加软件的可扩展性,以适用不同的业务需求
❓何时使用继承
  • 继承与真实世界类拟

    • 只要说“苹果树是作物”,苹果树的很多行为就不言自明了

    • 富士是一种苹果树

      符合 is-a关系的 设计适用继承

💥理解继承
  1. 子类可以继承父类的所有些资源吗?
    在这里插入图片描述

  2. 访问修饰符: protected

    • 可以修饰属性和方法
    • 本类、同包、子类可以访问
  3. 访问修饰符总结:

    访问修饰符本类同包子类其他
    private
    默认
    protected
    public

    理解对象创建的步骤,先创建父类,再创建子类(先会运行父类的构造方法,再运行子类的构造方法)

知识扩展:

Object类

  • 是所有Java类的祖先

    • 所有的java类都直接或间接地继承了Object类
  • 位于Java.lang包中

  • 在定义一个类时,如果没有使用extends关键字,即没有显式地继承某个类,那么这个类直接继承Object类

  • 常用方法

    方法说明
    toString()返回当前一个对象本身的有关的信息,返回字符串对象
    equals()比较两个对象是否为用一个对象。若是,返回true
    clone()生成当前对象的一个副本,并返回
    hashCode()返回该对象的哈希代码值
    getClass()获取当前对象所属的类信息,返回Class对象

super关键字

使用super关键字 super代表父类对象

  • 子类访问父类成员

    • 访问父类构造方法

    语法:

    在子类构造方法中调用且必须是第一句

    super(参数);
    

    实例:

    public class AppleTree extends Crop{
        //省略private属性定义
        public AppleTree(String brand){
            
            super(""苹果树,10,2100);//访问直接父类的构造方法
            
                this.brand=brand;
        }
        
    }
    

如果在子类中调用父类中被重写的方法,应该如何实现呢?

  • super关键字代表对当前对象的直接父类对象的默认引用

  • super可用于子类访问父类属性、父类方法

    语法:

    super.<父类属性/父类方法>

    实例:

    super.print();
    

注意!!!

  • super关键字必须出现在子类(子类的方法和构造方法)中,而不允许在其他位置

  • 使用super关键字可以访问父类的成员(属性、方法、构造方法)

  • 注意访问权限的限制,如无法通过super访问private成员

方法的重写:

  1. 必须拥有继承关系

  2. 子类重写父类的同名方法,要求参数列表一模一样,访问修饰符要比父类更大,返回值一样或者是其子类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值