日常学习 8.7 Java面向对象三大特性之 继承

本文介绍了Java面向对象编程中的继承机制,包括关键字`extends`的用法、继承关系、抽象类和方法、final的特性,以及多态和递归的基本概念。通过实例和应用场景阐述了继承在代码复用和扩展中的作用,同时提到了注意事项和练习任务。
摘要由CSDN通过智能技术生成

8.07

Java面向对象三大特性之 继承
学习目标:掌握语法和特点


Java中的继承(体系)
-继承关系 类与类之间的关系(亲的血缘关系)

-实习关系 类与接口之间的关系(师徒关系)


继承关系概念
1.关键字 extends (意思为扩展)
class A extends B
A 代表子类 所有的子孙后代(徒子徒孙)
B 代表父类 所有的父辈(所有的师父,师祖)

一个父类能有很多子类

案例:
父类:动物类 Animal
子类:猫Cat 狗Dog 猪Pig


特点:
-子类可以继承父类所有的属性和方法,除了构造方法
-所有的类没有写继承,默认继承自Object
-Java中一个父类能扩展多个子类
-Java中只支持单继承(一个子类只能有一个直接的父类)
-Java中支持多层继承(一层一层继承下来)
-如果父类封装了起来,子类无法直接访问父类封装的属性,
但是子类可以通过父类提供的公开的方式访问

-super:代表当前类的父类
如果子类使用有参构造进行创建对象
方式一:在构造方法中调用set方法进行赋值
方式二:利用父类的有参构造进行传值 super(name,age)


继承的好处
1.提高代码的维护性(增 删 改)
弊端:增加了类与类之间的耦合度(权衡)

2.提高了代码的扩展性(父类)
父类未来可以在非入侵的情况下,扩展更多的子类



方法的重载
出现在同一个类中
方法名相同
参数列表不同(类型、数量、顺序)
与返回值无关

方法的重写
出现在继承体系中
方法名相同
参数列表相同
返回值类型相同
只有方法类的代码不同


抽象 (为继承而生,在继承的基础上做强制规定)
基本含义:关键字 abstract (抽象的修饰符)

1.修饰类 (抽象类)
-无法实例化(new不出来)
-只能被继承
-普通类中有点元素,抽象类中都有,抽象类中还可以有抽象方法



2.修饰方法 (抽象方法)
-没有方法体
-抽象方法必须被重写
-抽象方法只能出现在抽象类

使用场景:
1.当父类绝对不需要创建对象时可以考虑将父类抽象化
2.如果父类中的某些方法绝对不需要立即实现,而是未来靠子类重写,可以考虑将方法抽象化






@Override
Java自带的注解,用来检测当前的方法是不是对父类的方法的重写


final最终
基本含义:是一个关键字 final 最终的修饰符

1.修饰类(最终类)
-无法被继承(没有后代) 比如 String Scanner


2.修饰方法(最终方法)
-无法被重写


3.修饰属性(最终属性)
共同特性:1.一开始就要赋值


2.无法被修改
-基本数据类型
本身的值无法被修改

-引用数据类型
地址无法被修改,但是内部的内容可以改

继承的使用场景:
当多个类具有共同属性和方法时,可以考虑将这些共性抽离出来形成一个父类。
如果要对现有的类进行 完善/扩展/增强 可以考虑在继承的基础上,对父类的方法进行重写。



作业:猜拳游戏(面向对象版)

设计类:

父类:角色
子类:
玩家
电脑/机器人

裁判(功能)

应用程序的类(run方法)

测试类(让应用程序启动)


注意:不要到处new对象

预习:多态与接口


遇到问题:
判断单局胜负时如何多个传递玩家或者电脑的信息

解决:
直接把玩家和电脑的对象传参进去

心得:
今天学习了Java面向对象之继承,今天的内容较简单,多看多做多记就好


支线任务:
1.什么是递归,有什么注意事项
-递归:
它是指一段程序直接或者间接调用自身的一种方法,
通过这种形式执行需要进行一些固定步骤的许多操作,
它可以把一个复杂并且庞大的问题简单化,
通过专注于解决它分化出来的小问题从而解决大问题,
从而大大减少我们的代码量,
是提高我们编码效率的很好方法。
-注意事项:
1. 基线条件:递归必须有一个或多个终止条件,当满足该条件时,递归将停止。
2. 递归条件:递归必须包含一些自我调用的步骤,
这些步骤需要将问题分解为较小的子问题。
每个子问题都需要用相同的算法解决,并最终计算出最终答案。
3. 过程不重叠:每个递归调用必须解决不同的子问题,以减少或消除冗余计算的可能性。
4. 子问题结构相同:递归必须采用相同的算法解决每个子问题,以确保正确性和一致性。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值