Java方法继承、重载与覆盖详解
需积分: 17 42 浏览量
更新于2024-09-13
2
收藏 3KB TXT 举报
本文主要对Java中的方法继承、方法重载和方法覆盖进行了总结,旨在帮助读者理解这三种概念之间的关系和区别。
1. **Java方法继承**:在Java中,一个子类(SubBase)可以继承一个父类(Base),从而获取父类的公共、受保护或默认(包访问)成员。子类可以有自己的方法和属性,并且可以扩展或覆写父类的方法。继承是多态性的基础,使得代码可复用并实现更复杂的结构。
2. **方法重载**:在同一类中,如果存在两个或多个方法具有相同的名称,但参数列表不同(参数数量、类型或顺序不同),则称这些方法为重载方法。重载不考虑返回类型和访问修饰符,只要求方法签名(方法名和参数列表)不同。
3. **方法覆盖**:当子类继承父类时,如果子类定义了一个与父类相同名称和参数列表的方法,那么这个子类方法覆盖了父类的方法。覆盖方法必须保持或降低访问级别(如父类的public方法在子类中可变为protected或default,但不能变为private),并且不能改变抛出的异常。子类方法不能比父类方法更早返回(即子类覆盖的方法不能比父类方法少执行任何代码就返回)。
4. **super关键字**:在Java中,super用于引用父类的成员。可以通过super关键字调用父类的构造器、方法和字段。例如,子类构造器通常需要通过super()调用来调用父类的构造器。此外,如果子类覆盖了父类的方法,可以通过super.method()来调用被覆盖的父类方法。
5. **静态方法与非静态方法**:静态方法属于类,而非静态方法属于类的实例。子类可以有与父类同名的静态方法,但这不是覆盖,因为静态方法是按类型而不是按对象调用的。子类和父类的静态方法各有一份副本,调用时根据类名进行。而非静态方法在子类中可以被覆盖,通过对象调用。
示例代码:
```java
class Super {
static int stat = 1;
int nonStat = 2;
static int statMethod() {
return 3;
}
int nonStatMethod() {
return 4;
}
}
public class Sub extends Super {
static int stat = 10;
int nonStat = 20;
static int statMethod() {
return 30;
}
int nonStatMethod() {
return 40;
}
public static void main(String[] args) {
Super s = new Sub(); //向上转型
System.out.println("Static is " + s.stat); //调用父类静态方法
System.out.println("Non-Static is " + s.nonStat); //调用父类非静态方法
System.out.println("Static method is " + s.statMethod()); //调用父类静态方法
System.out.println("Non-Static method is " + s.nonStatMethod()); //调用子类非静态方法,因向上转型不影响非静态方法调用
Sub sub = (Sub) s; //向下转型
System.out.println("Static is " + sub.stat); //调用子类静态方法
System.out.println("Non-Static is " + sub.nonStat); //调用子类非静态方法
}
}
```
在这个例子中,我们看到了继承、静态方法和非静态方法的使用。子类`Sub`覆盖了`Super`的非静态方法,并且静态方法并没有被覆盖,而是各自独立存在。同时,我们看到了向上转型和向下转型对调用方法的影响。
2020-09-03 上传
2021-09-30 上传
2020-09-03 上传
2011-06-17 上传
点击了解资源详情
点击了解资源详情
2022-06-10 上传
lgc746
- 粉丝: 0
- 资源: 1
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全