【JAVA SE基础篇】25.面向对象三大特征之继承

之前主要了解了面向对象的基本概念,接下来的部分属于面向对象的三大特征:继承、封装、多态

1.继承(extends)

继承让我们更加容易实现类的扩展。子类继承父类,是父类的扩展,实现了代码的重用。

假如我们写一个人类,有姓名和年龄的属性,有吃的功能,

再写一个学生类,有姓名和年龄和学号的属性,有吃的功能,有学的功能

例:

 此时代码很复杂,你会发现人类的属性和功能在学生类中都有,写起来比较麻烦,这时就可以用到继承

将学生类中和人类中相同的属性和功能删掉,再写上继承的关键字以及被继承的类名

例:

 此时学生类就拥有了人类的所有属性和方法。

注:

1.父类也成为超类,基类,派生类

2.java中类只有单继承,没有c++中的多继承。java中一个儿子只有一个爹,一个爹可以有多个儿子。

3.java中用多接口来实现多继承,接口可以多继承,类只能单继承

4.子类可以得到父类的所有属性和方法(父类构造方法除外),但是不见得可以直接访问(例如:父类的私有属性和私有方法)

5.如果定义一个类没有extends声明父类,那么默认父类为java.lang.Object。

2.instanceof运算符

instanceof是二元运算符,左边是对象,右边是类,当对象是右边类或其子类所创建的对象时,返回true,否则false

例:

3.方法的重写

方法的重写表示子类重写父类的方法

比如,父类有个a()方法,子类使用时候发现不符合自己的要求,就可以进行重写

子类通过重写父类的方法,可以用自身的行为替换父类的行为。

重写三个要点:

1.方法名,形参列表相同

2.返回值类型和声明异常类型相,子类小于等于父类

3.访问权限,子类大于父类

例:

 4.super关键字

super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或者属性

 

 super的其他用法

若构造方法的第一行代码没有显示的调用Super(...)或者this(...),那么java默认都会调用super(),含义是调用父类的无参构造函数,这里的super()可以省略

构造方法的第一句总是super(),来调用父类对应的构造方法。

所以构造方法调用流程是,先向上追溯到Object,再依次向下执行类的初始化块和构造方法,直到子类为止。

 例:

groups.tianya.cn/post-3678-2bc837af4c4a45ebb5ba324339c53d8c-1.shtmlgroups.tianya.cn/post-3678-703eb74f83544c3f9efaf6a785bd1050-1.shtmlgroups.tianya.cn/post-3678-322065f868a94f8c954e9f91b3ce0095-1.shtmlgroups.tianya.cn/post-3678-37a51a9d1ca3454b98dad4bc0b65ba8a-1.shtmlgroups.tianya.cn/post-3678-bcc21bd53a9c432c87f5b6747cca3ae4-1.shtmlgroups.tianya.cn/post-3678-7336cb57ffab460caa00f7c19b89d244-1.shtmlgroups.tianya.cn/post-3678-4cd176c9eca6472abd276692e7b46a91-1.shtmlgroups.tianya.cn/post-3678-f234adae068647c8b532f41595c01bb1-1.shtmlgroups.tianya.cn/post-3678-1ff115129a754537bf69d77343ffb23f-1.shtmlgroups.tianya.cn/post-3678-87d5c9620d2d437cb49d0a4bcdf0b24f-1.shtmlgroups.tianya.cn/post-3678-7ef9534b2c7a4a7aa9ab6511c1303c9d-1.shtmlgroups.tianya.cn/post-3678-8c33255c10da43d698a55fcfb0d68aa3-1.shtml

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值