一文读懂继承性

简介: 一文读懂继承性

面向对象特征之一:继承性

1.为什么要有继承?

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。

2.此处的多个类称为子类(派生类),单独的这个类称为父类(基类 或超类)。可以理解为:“子类 is a 父类”

3.类继承语法规则:

class Subclass extends SuperClass{ }

4.作用:

  • 继承的出现减少了代码冗余,提高了代码的复用性。
  • 继承的出现,更有利于功能的扩展。
  • 继承的出现让类与类之间产生了关系,提供了多态的前提
  • 子类继承了父类,就继承了父类的方法和属性。
  • 在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和 方法。
  • 在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集, 而是对父类的“扩展”。

5.关于继承的规则:

子类不能直接访问父类中私有的(private)的成员变量和方法。

image.png

注意:

Java只支持单继承和多层继承,不允许多重继承

  • 一个子类只能有一个父类
  • 一个父类可以派生出多个子类
  • class SubDemo extends Demo{ } //ok
  • class SubDemo extends Demo1,Demo2…//error

image.png

单继承与多层继承举例

image.png

方法的重写

  • 定义:
    在子类中可以根据需要对从父类中继承来的方法进行改造,也称 为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。
  • 要求:

1.子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表

2.子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型

3.子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限

4.子类不能重写父类中声明为private权限的方法 4. 子类方法抛出的异常不能大于父类 被重写方法的异常

注意:

子类与父类中同名同参数的方法必须同时声明为非static的(即为重写),或者同时声明为 static的(不是重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

image.png

相关文章
|
2月前
|
搜索推荐
用通俗易懂的方式解释一下多态
【10月更文挑战第13天】多态,就像是编程世界里的一场神奇魔术,它让不同的对象在面对相同的操作时,能够展现出各自独特的表现。
17 2
|
4月前
|
Java
利用抽象类和接口提升你的代码质量!Java编程界的黑魔法
利用抽象类和接口提升你的代码质量!Java编程界的黑魔法
39 2
|
6月前
|
Java
Java编程界的黑魔法:利用抽象类和接口提升你的代码质量!
【6月更文挑战第17天】在Java中,抽象类和接口是提升代码质量的关键。抽象类通过提供共享接口和部分实现减少冗余,强制子类实现标准,并作为扩展点。接口则定义行为契约,促进多态性、松耦合和易扩展性。两者结合使用,可以在保证灵活性的同时增强代码结构和可维护性,为复杂系统的构建打下坚实基础。
41 0
|
7月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
81 2
|
7月前
|
Serverless 数据安全/隐私保护 C++
第八章:C++中的类与对象介绍
第八章:C++中的类与对象介绍
39 0
|
存储 安全 编译器
【巧妙继承】C++玩转继承的神级技巧
【巧妙继承】C++玩转继承的神级技巧
|
设计模式 Java
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
240 0
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
|
XML 安全 Java
教你精通Java语法之第十三章、反射
Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到,那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。1. 反射的意义2. 反射重要的几个类: Class类 、Field类、 Method类、 Constructor类3. 学会合理利用反射,一定要在安全环境下使用。
63 0
|
Java
【Java面向对象】多态的详细介绍,简单易懂,看这一篇就够了
【Java面向对象】多态的详细介绍,简单易懂,看这一篇就够了
165 0
|
存储 Java 编译器
再谈类与对象
前面两篇我们讲述了c++类和对象的相关知识,本篇将再讲述一些小的知识点
47 0