随笔——Java编程学习(二)继承(上)

面向对象编程之继承
本文深入探讨了面向对象编程中的继承概念,解释了子类如何继承父类的特征和行为,包括成员变量和方法的继承规则。介绍了static关键字的使用,以及如何通过super和this关键字在子类中调用父类的构造方法。

面向对象编程(二)——继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。(子类会具有父类的一般特性也会具有自身的特性。)


static关键字(静态修饰符)

  • 可以修饰成员变量和成员方法
  • 可以通过对象和类来调用(调用的都是同一个)
  • 修饰成员变量表示静态变量,静态变量是所有对象公用的,在内存中只占有一份内存
  • 修饰成员方法表示静态方法,静态方法里面只能访问静态变量

static应用举例

  • 圆类(π可以设置为static)
  • 一个游戏中的游戏管理类(负责整个游戏的状态,只需要一个对象,可以全部设置为static)
  • 一个班级类(每个班级有一个所属的学校)

static特点

  • 随着类的加载而加载
  • 优先于对象存在
  • 所有对象共享(可以通过对象或者类来访问)

静态代码块

放在类里面,只会执行一次(加载类的时候,就执行这个类里面的静态代码块)

static{
}

帮助文档生成

使用文档注释生成帮助文档,以便非代码编译者了解此代码用处(多用于只提供使用,不公开源码的情况下)。生成帮助文档

  • -d api : 放在java文件所在的文件下的api的文件夹下
  • ArrayTool.java: 此文件内的所有类必须为public类

类的继承格式

在 Java 中通过 extends 关键字可以申明一个是从另外一个类继承而来的,一般形式如下:

class 父类 {
}
 
修饰符 class 子类 extends 父类 {
}

注意: Java 不支持多继承,但支持多重继承。

  • Java 的继承是单继承,但是可以多重继承。
  • 单继承就是一个子类只能继承一个父类。
  • 多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 子类继承了父类里面的成员(成员变量和成员方法)
  • 子类不能访问父类里面的私有成员
  • 子类对象里面拥有父类里面的私有成员变量(只是不能直接访问)

怎么继承

  • 提取公共类
  • 子类继承公共类(子类拥有公共类所拥有的东西)
  • extends XXX

implements关键字

使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

super 与 this 关键字

子类和父类里面有同名的变量,就近原则(优先级:方法参数>当前类的变量>父类的变量)
super关键字: 我们可以通过super关键字来实现对父类成员(变量、方法和构造方法)的访问,用来引用当前对象的父类。(必须是构造器的第一条语句)
this关键字: 指向自己的引用。

继承中的构造

  • 当没有显式调用(通过super(xx,xx,xx,xx)调用)父类里面的构造方法时,默认会调用父类里面的无参构造方法;
  • 如果父类没有无参构造方法,要通过下面的调用指定的有参构造方法
    • 怎么指定调用父类里面的构造方法
      super(xx,xx,xx,xx);
    • 怎么指定调用子类本身中的构造方法
      this(xx,xx,xx);
注意:
通过this或者super调用构造方法的时候必须在第一条语句,因此二者不能同时出现,只能选择其一调用 构造方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值