【Java基础】详解面向对象特性(诸如继承、重载、重写等等)

简介: 【Java基础】详解面向对象特性(诸如继承、重载、重写等等)

封装、继承、多态是java面向对象的三大特征,封装在这里就不多说了,主要说一下对继承和多态的理解

总结导图:

继承

what: 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。java中使用extends关键字来实现类的继承机制

语法如下

<modifier> class <name>[extends]<superclass>{...
 ...}

通过继承,子类自动拥有基类(superclass)的所有成员(成员变量和方法)。另外,java和C不同,java只允许单继承

多态

what: 多态,即动态绑定是指在执行期间判断所引用对象的实际类型,根据其实际类型调用其对应的方法。Java实现多态有三个必要条件:继承、重写、向上转型。

正常情况下,Cat c = new Cat(); 就是实例化一个Cat对象,但是如果是这样呢,Cat c=newBlackCat();

Cat类型的指向Cat的子类BlackCat,那么此时的c不但可以使用父类的共性,还可以使用子类强大的功能,而这被称为向上转型。

重载

what: 方法的重载是指一个类中可以定义有相同的名字,但参数列表各不同(即参数的个数或类型不同),另外有一点需要注意的是,重载时返回类型可以不一致,但是仅仅只是返回类型不一致,而参数列表一致时并不会构成重载,这是因为重载的核心在于参数列表的不同。

重写

what: 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 方法名一样,返回值和形参都不能改变,覆盖方法体

  • 在子类中可以根据需要对从基类中继承来的方法进行重写
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
  • 重写方法不能使用比被重写方法更严格的访问权限
  • 重写方法不能声明抛出比被重写方法范围更大的异常类型。

详细说明

重写Override表示子类中的方法可以和父类中的某个方法的名称和参数参数完全相同,通过子类创建的实例调用这个方法时,将调用子类的定义方法,相当于子类将父类中的方法覆盖了,所以重写又名覆盖,子类覆盖父类方法时,只能比父类抛出更少的异常,或者是抛出父类异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题,访问权限可不可以比父类大

两者区别

重载与重写是 Java 多态性的不同表现。

重写是父类与子类之间多态性的表现,在运行时起作用(动态多态性,譬如实现动态绑定)

而重载是一个类中多态性的表现,在编译时起作用(静态多态性,譬如实现静态绑定)。

目录
相关文章
|
12天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
17 1
|
25天前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
23 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
32 2
|
3月前
|
Java 编译器 数据安全/隐私保护
Java 重写(Override)与重载(Overload)详解
在 Java 中,重写(Override)和重载(Overload)是两个容易混淆但功能和实现方式明显不同的重要概念。重写是在子类中重新定义父类已有的方法,实现多态;重载是在同一类中定义多个同名但参数不同的方法,提供多种调用方式。重写要求方法签名相同且返回类型一致或为父类子类关系,而重载则关注方法参数的差异。理解两者的区别有助于更好地设计类和方法。
283 1
|
4月前
|
Java
【Java基础面试十八】、说一说重写与重载的区别
这篇文章阐述了Java中重写与重载的区别:重载是同一个类中方法名相同但参数列表不同的方法之间的关系,而重写是子类中方法与父类中相同方法名和参数列表的方法之间的关系,且子类的返回值应小于等于父类,访问修饰符应大于等于父类。
【Java基础面试十八】、说一说重写与重载的区别
|
6月前
|
Java 编译器
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
在 Java 中,重写(Override)和重载(Overload)是两种不同的概念,用于实现多态性。它们有着不同的作用和使用场景。
|
7月前
|
Java
【Java开发指南 | 第二十五篇】Java 重写(Override)与重载(Overload)
【Java开发指南 | 第二十五篇】Java 重写(Override)与重载(Overload)
53 1
|
Java 编译器
Java重写(Override)&重载(Overload)
重写(Override)概述 Java面向对象编程中的重写(override)指的是子类可以重写其父类中的非private方法,使得子类在调用该方法时会使用自己的实现而不是父类的实现。 重写(Override)讲解 定义一个名为 Animal 的父类和一个名为 Cat 的子类,其中 Cat 类继承了 Animal 类。Animal 类中有一个名为 move() 的方法,Cat 类可以对这个方法进行重写。 Animal 类中的 move() 方法不是private 类型,因此它可以被其子类重写。在 Cat 类中,使用相同的名称和参数列表来重新定义了 move() 方法,并且使用 @Overrid
171 0
|
7月前
|
Java
【Java】重写和重载的区别
【Java】重写和重载的区别