java基础之继承
2022/2/27 22:23:41
本文主要是介绍java基础之继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java基础之继承
public class Sub extends Base{ …… }
当Sub类和Base类位于同一个包中,Sub类继承Base类中public,protected和默认访问级别的成员变量和成员方法。
当Sub类和Base类位于不同包中,Sub类继承Base类中public,protected级别的成员变量和成员方法。
方法重载(Overload)
类的同一个功能的不同实现。在一个类中不允许定义两个类名相同且参数签名都相同的方法。
必须满足下面的请求:参数签名不同
1,方法名相同
2,方法参数的类型,个数,顺序至少有一个不同
3,方法的返回值可以不同
4,方法的修饰符可以不同。
方法覆盖(Override)
如果在子类中定义一个方法,其名称,返回类型及参数签名正好与父类中的某个方法的名称,返回值及参数签名刚好相同,那么可以说子类覆盖父类的方法。 子类方法不能缩小父类方法的访问权限,子类方法不能抛出比父类方法更多的异常,父类的静态方法不能被子类非静态方法覆盖. 子类可以定义和父类的静态方法同名的静态方法,以便隐藏父类的静态方法。但是父类型的引用会调用父类的静态方法,子类引用会调用子类的静态方法。 父类的非静态方法不能覆盖为子类的静态方法。子类实现父类的静态方法,子类重新定义父类的静态方法。 父类的私有方法不能被子类覆盖。
super关键字
super和this关键字都可以用来覆盖Java语言的默认作用域,使被屏蔽的方法盒变化可见。 1,在类中通过super()调用父类的构造方法。 2,在子类中访问父类中被屏蔽的方法和属性。 3,super.name 调用父类的属性, super.getName() 调用父类的方法
多态
1,对于一个引用类型的变量,Java编译器按照它声明的类型来处理。 2,对于一个引用类型的变量,运行时Java虚拟机按照它的实际引用的处理对象来处理。 3,在运行时环境中,通过引用类型变量来访问所引用对象的方法和属性时,Java虚拟机采用以下绑定原则。 1,实例方法与引用变量实际引用的对象的方法的绑定,这种绑定属于动态绑定,因为是在运行时由JVM决定的。 2,静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为实际上在编译阶段就已经做了绑定。 3,成员变量(包括静态变量和成员变量)与引用变量所声明的类型的成员变量绑定,这种绑定属性静态绑定,因为实际上在编译阶段就已经做了绑定。
设计用于被继承的类
1,提供良好的文档说明 2,尽可能的封装父类的实现细节,把代表实现细节的方法和属性定义为private类型的。 3,把不允许子类覆盖的方法定义为final类型 4,父类的构造方法不允许调用可以被子类覆盖的方法,这样做会导致程序出现意料之外的错误。 5,如果某些类不是专门设计用来被继承的,轻易继承是不安全的。
其他
实例,引用类型。引用类型获取className的时候获取的是实例类型的类名。
这篇关于java基础之继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署