【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 多态性的不同表现。

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

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

目录
相关文章
|
1天前
|
机器学习/深度学习 Java API
杨校老师课堂之Java面向对象知识点整理集锦3
杨校老师课堂之Java面向对象知识点整理集锦
8 0
|
1天前
|
Java API 数据安全/隐私保护
杨校老师课堂之Java面向对象知识点整理集锦2
杨校老师课堂之Java面向对象知识点整理集锦
12 0
|
1天前
|
Java 编译器 开发工具
杨校老师课堂之Java面向对象知识点整理集锦1
杨校老师课堂之Java面向对象知识点整理集锦
6 0
|
1月前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
25 3
|
1月前
|
Java 程序员 编译器
【详识JAVA语言】面向对象程序三大特性之二:继承
【详识JAVA语言】面向对象程序三大特性之二:继承
48 2
|
5天前
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
|
3天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
17 3
|
5天前
|
Java
Java 面向对象新篇章:子类如何“站在巨人肩膀上”,继承与创新并存!
【6月更文挑战第16天】Java 中的子类继承父类,实现代码复用和扩展。子类自动获得父类属性和方法,减少冗余,保证一致性。通过示例展示了`Circle`类如何继承`Shape`类并添加新特性。子类不仅能继承,还能创新,如`Circle`类增加计算面积方法。这种继承与创新结合,构成Java面向对象编程的核心,支持构建灵活、高效的软件系统。
|
1月前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
26 3
|
1月前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
23 2