Java学习笔记04——子类与继承

本文详细介绍了Java中的子类与父类的关系,包括子类的声明、instanceof运算符的使用、Object类的重要性。讨论了子类的继承性,如在不同包中的访问权限。讲解了成员变量的隐藏、方法重写,以及Super关键字的应用。还涉及final关键字的作用,对象的上转型对象的概念,以及面向对象编程的三大特性:封装、继承与多态。文章最后探讨了abstract类和abstract方法,以及开-闭原则在设计中的应用。
摘要由CSDN通过智能技术生成

1、子类与父类

由继承得到的类称为子类,被继承的类称为父类(超类, superclass)。当我们编写一个类的时候,发现某个类已经有我们所需的部分成员变量和方法,我们可以将新编写的类继承为这个类的子类。子类继承了父类的部分变量和方法,也可以自己创建新的变量和方法。

Java不支持多重继承,一个子类只能有一个父类,而一个父类可以有多个子类。

子类的声明

在类的声明中,通过使用关键字extends来定义一个类的子类:

/* 格式 */
class 子类名 extends 父类名 {
   
...
}
/* 举例 */
class Fruit {
    // 父类
... 
}
class Apple extends Fruit {
    // 子类,使用 extends 关键字继承父类的变量与方法
...
}

instanceof运算符

instanceof运算符是Java独有的运算符,其左边的操作元是对象,右边的操作员是类。当左边的对象属于右边的类或其子类创建的对象,该运算结果为true,否则结果为false

 Fruit fruit = new Fruit();
 Apple apple = new Apple();
 System.out.println(fruit instanceof Apple);	// 输出 false
 System.out.println(apple instanceof Apple);	// 输出 true
 System.out.println(apple instanceof Fruit);	// 输出 true

Object类与类的树形结构

在Java中,所有的类都有一个相同的源头: Object类,所有的类都间接或直接的继承于 Object类,若某个类在定义的时候没有使用extends关键字,这个类将被默认为 Object 的子类。由于一个子类只能有一个父类,而一个父类可以有多个子类;所有的类共同形成一个树形结构,而 Object 类就是这棵树的根节点。

2、子类的继承性

所谓子类继承了父类中的变量和方法,就像在子类中直接定义了这些继承的变量和方法,可以被子类中自己定义的任何实例方法调用。

子类和父类在同一个包中

如果子类和父类在同一个包中,子类将继承父类中非私有(private)的变量和方法,继承的变量和方法的访问权限保持不变。

子类和父类不在同一个包中

当子类和父类不在同一个包中,仅受保护的(protected)和公有的(public)方法和变量被继承 。

访问权限

在Java中存在三种访问限制修饰符:private、protected、public,对应四种级别的访问权限,下表列举了被每种修饰符修饰的方法和变量能在什么条件下被访问:

<
修饰符 级别 类自身的方法 相同包中的类 非相同包中的类
private 私有 × ×
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值