Java之继承

继承

public class 子类 extends 父类 {}

什么时候使用继承:

  • 继承体现的关系:is a
  • 假设法:我有两个类,如果其中一个类是另外一个类的一种就可以使用继承。否则不可滥用继承
  • eg:苹果和水果(对),猫和动物(对),猫和狗(错)
继承中访问变量的特点
  • 子类的方法中访问一个变量
    • 首先在子类的方法中寻找
    • 其次在子类的成员变量中寻找
    • 最后在父类的成员变量里寻找
    • 如果没有就会报错
super 关键字

super 关键字和 this 关键字用法类似

  • this 代表本类对象的引用
    • this 关键字指向调用该方法的对象,一般我们是在当前类中使用 this 关键字,所以我们常说 this 代表本类对象的引用
  • super 代表父类对象的引用
关键字访问成员变量访问构造方法访问成员方法
thisthis.成员变量this()this.成员方法
supersuper.成员变量super()super.成员方法
继承中访问构造函数的特点

子类中所有的构造函数默认都会访问父类中无参的构造方法

为什么呢?

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

如果父类中没有无参构造方法,只有带参构造方法,该怎么办么?

  • 通过使用 super 关键字去显示的调用父类的带参构造方法
  • 在父类中自己提供一个无参构造方法(推荐)
继承中访问成员方法的特点
  • 子类对象访问一个方法
    • 首先在子类的方法中寻找
    • 最后在父类的方法里寻找
    • 如果没有就会报错
方法重写

@Override :

  • 是一个注解
  • 可以帮助我们检查重写方法的方法声明的正确性

注意事项:

  • 私有方法不能被重写(因为父类私有成员子类是不能继承的)
  • 子类方法访问权限不能更低( public > 默认 > 私有
导包

使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦。为了简化带包的操作,Java 就提供了导包的功能

import 包名

权限修饰符
修饰符同一个类中同一个包中子类或者无关类不同包的子类不同包的无关类
private
默认
protected
public
状态修饰符
  • final :最终状态,可以修饰成员变量,成员方法,类,变量。

    • 被其修饰的成员变量,不可以被再次修改赋值
    • 被其修饰的成员方法,不能被重写
    • 被其修饰的类,不能被继承
    • 修饰的变量是基本类型,其数据值不能被改变
    • 修饰的变量是引用类型,其地址值不能改变,但地址里面的变量是可以改变的
  • staic :静态,可以修饰成员方法,成员变量

    • 被类的所有对象所共享
    • 可以通过类名或对象调用,我们推荐通过类名调用
    • 访问特点:
      • 非静态的成员方法可以访问静态或者非静态的成员变量或成员方法
      • 静态的成员方法只可以访问静态的成员方法和成员变量,不可以访问非静态的
    • 静态的成员方法只可以访问静态的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值