Java中的继承和多态

简介: 继承和多态是面向对象开发语言中非常重要的一个环节,若使用得当,整个程序的架构将变得非常有弹性,同时可以减少代码的 冗余性。继承的概念    在已经存在的类的基础上进行扩充和改造,形成一个新的类。

继承和多态是面向对象开发语言中非常重要的一个环节,若使用得当,整个程序的架构将变得非常有弹性,同时可以减少代码的 冗余性。

继承的概念

    在已经存在的类的基础上进行扩充和改造,形成一个新的类。满足“is   a”的关系就是继承



eg:

父类 :Animals。有name 和age 属性,提供set和get方法。

子类:Bird 。Bird中增加了color属性,提供set和get方法。

两者都是继承于Animals。

img_86cc811844f588eabe7b0e090a570756.png


Bird类


img_5f83337abbb8bf8bcae4c2aaac8e8b45.png

Text类和结果


img_367c7dae383a3af20900c966c246c4dd.png

Bird继承了Animals类,并且满足“is a ”的关系,鸟事动物,这样的逻辑是对的,并且在Animals的基础上增加了新的属于它自己的属性——color。

Animals提供了构造方法,则在Bird的构造方法中必须显性的调用父类的构造方法,而且必须在 第一行。

子类若要调用父类的方法,可以有super.方法名调用。

Object类------java中万物之祖。

 java中的每一个类都有一个父类,有的显性的表示,有的则隐性表示,但都是继承一Objec,他是所有java类的父类。

多态的概念

  多态是一种事务,多种形态。用名字一样的代码根据要求的不同,干不一样的事情。

分类

1:对象的多态。(父对象引用指向子类实例)

2:方法的多态。(分为方法的重载和重写或者覆盖)

对象的多态。



img_d3735573e0c0bf25c3a7e0005d0a5d9e.png

若在子类中重写了父类的方法,则通过对象的多态调用的是子类中重写的方法。

方法的多态

    1 : 方法的重载

重载是发生在同一类中,函数的名字相同,但是函数的参数个数,和参数类型,只要不一样,就是重载。


img_87d06a24620d2370f59795a48ea13059.png

函数重写。

    重写发生在两个类中,父类的方法,在子类中重新写。

    重写的函数名字和参数列表完全一样。

    重写的函数只能抛出比之前更小的异常。访问权限只能比之前的更大。

    eg:animals 类中写了eat()    方法,接下来在子类中重写此方法。


img_d6d2721bf76abdb61cc3e8919aa4df25.png


重写的函数前加@Override 标示。


前面讲的对象的多态里面,父类对象指向子类实例,只能调用父类和子类中相同的方法,子类中新添加的方法并不能调用,若要调用就要有强制类型转换。


img_f4c0d0f7de88ac21f06ef96117150327.png


 这样父类对象就可以调用子类的方法了,

难道说所有的类型都可以相互转换的吗?

不是,只有继承关系的对象之间才可以相互转换.



img_252074fec3feedb6b5f63a9e32bc3f7d.png


img_6fad6ba76c2087c12b23202bd609d41b.png

instanceof 判断左边的元素是不是等号右边的实例.




写的有点乱,大家多批评改正,感谢。

相关文章
|
14天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
13 3
|
14天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
27 2
|
14天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
27 2
|
14天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
26 1
|
18天前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第10天】Java零基础教学篇,手把手实践教学!
15 4
|
23天前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
29 4
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
25天前
|
Java 测试技术 编译器
Java零基础-继承详解!
【10月更文挑战第4天】Java零基础教学篇,手把手实践教学!
27 2
|
29天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
20 5
|
29天前
|
Java
java继承和多态详解
java继承和多态详解
38 5