网站首页 > java教程 正文
今天我们继续了解面向对象!
继承
存在于面向对象程序中的
两个类之间的
一种关系
被继承的类称为
父类(或超类,基类)
继承了父类的类被称为
子类(或派生类)
什么基类与派生类,超类与派生类
指的就是父类与子类
为什么要使用继承?
使用继承可以有效实现代码复用
避免重复代码的出现
举个例子
假设:
我们现在要创建两个类
一个教师类 一个学生类
那么我们就需要分别创建这两个类
并且定义属性与方法
对不对!
在这个类创建的过程中
我们就会发现
有很多代码是重复的
那我们就可以
把两个类中形同的部分
(属性和方法)
提取出来放到一个类中额! 就叫人类吧!
嗯?你有意见?
然后
让教师类与学生类继承这个人类
这样我们就少写了一半的代码
有木有
这样就避免了重复代码的出现
有木有
而且重复的利用了代码
代码复用
我们维护的时候
只要修改人类中的
属性和方法
就可以了呢!
很方便呀!有木有!
语法格式:
修饰符 class 子类名 extend 父类名{}
注意:
一个类只能直接继承一个类
但是可以间接继承其他类
一个类可以不写继承
但是不写的话系统默认他继承 Object
Object 是一个类,是所有类的根类
作用:
子类会将父类中的所有数据全部承
包括私有数据
但是私有的不能直接访问
要间接访问
构造方法不能继承
方法
方法重写:
如果子类和父类有相同的方法
子类的这个方法就叫做重写
方法重写需要注意的地方:
构成方法重写的条件
方法的返回值,方法名,参数列表
要与父类相同
修饰符的访问范围不能小于父类
子类的方法
不能抛出
比父类更多(更高)的异常
很好理解吧!就是熊孩子
不要闯大祸
要不然爸爸兜不住呀!
静态方法不存在重写
但是
可以继承
私有方法和构造方法
不能被重写
娜姐也不能总带你们
super
指的是当前类的父类的对象引用
难怪父类也叫超类
两种用途
调用父类中的普通成员
(属性和方法)
用super调用父类方法
super.方法名();
用super调用父类属性
super.属性;
和this很像唉!
如果父类和子类有同名成员时用super
(不产生歧义的情况下可以省略)
在子类的构造方法中
super可以显示的调用父类的构造
用于传参
super和子类构造方法
子类的构造方法中
必须调用其父类的构造方法
如果未显示
则默认调用父类无参构造
如果显示
则super必须位于第一行
如果未显示而父类没有无参构造则程序报错
finaljava 中的 final 关键字
“最后的 最终的 决定性的 不可更改的”
的含义
最后的最后让我们讲一下最后
final可以修饰类,方法,属性和变量
注意:
final 修饰类时
该类不可被继承
final 修饰方法时
该方法不能被重写
final 修饰变量时
如果final修饰的是一个局部变量
那么该变量的值一旦被指定不可修改
一般final和static共同修饰成员变量
表示常量
变量名所有字母大写
猜你喜欢
- 2024-09-10 感动哭了!《Java 编程思想》最新中文版开源
- 2024-09-10 Java编程思想---对象介绍---参数化类型(泛型)
- 2024-09-10 《JAVA编程思想》5分钟速成:第15章(泛型)
- 2024-09-10 Java编程思想——对象介绍——抽象过程
- 2024-09-10 Java编程思想---对象介绍---并发编程
- 2024-09-10 Java编程思想——并发(java并发编程实践和并发编程实战)
- 2024-09-10 Java编程思想:抽象类和方法(java抽象方法是什么)
- 2024-09-10 Java编程思想---万物皆是对象---以引用来操作对象
- 2024-09-10 Java编程思想:我们的第一个 Java 程序
- 2024-09-10 我理解的Java编程思想第二章——一切都是对象
你 发表评论:
欢迎- 最近发表
-
- pyinstaller打包python程序高级技巧
- 将python打包成exe的方式(python打包成exe的方法)
- Python打包:如何将 Flask 项目打包成exe程序
- py2exe实现python文件打包为.exe可执行程序(上篇)
- 如何将 Python 项目打包成 exe,另带卸载功能!
- Python打包成 exe,太大了该怎么解决?
- 可视化 Python 打包 exe,这个神器绝了!
- 案例详解pyinstaller将python程序打包为可执行文件exe
- Cocos 3.x 菜鸟一起玩:打包window程序
- 怎么把 Python + Flet 开发的程序,打包为 exe ?这个方法很简单!
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)