java三大特征 重载与重写的区别(一)

简介: java三大特征 重载与重写的区别(一)

🛫 OOP的三大特征都是什么?

 要想知道OOP的三大特征,首先应该知道什么是OOP,OOP就是Object Oriented Programming面向对象程序设计语言,Java就是这么一门语言。面向对象程序设计语言的三大特征是封装、继承、多态,封装说明一个类的行为属性与其他类的关系——高内聚低耦合;继承是超类对子类的扩展;多态是超类变量的引用指向子类对象。


🪂 什么是封装?

 封装又叫数据隐藏,是处理对象的一个重要概念。简单来说封装就是将类的属性和行为组合在一个包中,并对对象的使用者隐藏内部的具体实现方式。实现封装的关键在于程序只能通过对象的方法与对象的数据进行交互(故又被认为是"黑盒"),无需知道对象的内部细节,这是提高重用性(其他类可以通过对象直接调用类的属性方法)和可靠性(隐藏内部细节,无法直接修改属性)的关键

 除了以上优点封装还有:我们可以使用访问器和更改器对外提供一个封装字段的获取和修改方法,并且可以在更改器中使用代码完成错误检查逻辑等操作,如果单纯将字段暴露出去随意调用的话就无法完成这个操作。

image.png


🪂 什么是继承?

 继承的基本思想就是可以基于一个已有的类来创建新的类,继承已存在类就可以复用这个类的属性方法,除此之外还可以在继承的基础上自定义一些新的属性和方法。继承通过extends关键字完成,一个类只能继承自一个超类,但是超类还可以继承自其他的超类,这就是间接继承。

 谨记,继承之后可以在子类中可以增加字段和方法或者覆盖(重写)方法,但是继承绝不能也不会删除任何字段或者方法

image.png

🪂 什么是多态?

 多态形式上就是超类的变量引用指向子类对象,于是多态的另一个要素就是两个类之间有继承关系。当使用多态实例化对象调用方法的时候,调用子类自定义的独有方法时会报错image.png调用的超类方法被子类重写后会使用子类重写的方法


🛫 关于构造器你都知道什么?

 首先是构造器的简介:构造器又被称为构造函数,要想使用对象的话,首先必须要构造对象,在构造对象的同时构造器会运行并初始化类中字段的初始状态。关于构造器我们还需要了解的是:


构造器的命名应该与类相同

每个类中能够有一个以上的构造器

构造器的参数可以是0~无数个

构造器没有返回值

千万别在构造器中定义与实例字段同名的局部变量

构造器总是伴随着new操作串一起使用来实例化对象(实例化出来的Java对象都在堆中存储,使用new实例化会返回该对象的地址)

 如果在自定义类编写的时候不去定义构造器的话,编译器会默认提供一个该类的无参构造器,无参构造器没有初始化方法体的话就会初始化所有的变量成该数据对应类型的默认值,有初始化方法体就按方法体对字段进行初始化。只要是你定义了一个有参构造器的话,就不会提供默认的无参构造器,此时使用无参构造器实例化对象的话就会产生异常

image.png

相关文章
|
5天前
|
存储 安全 Java
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
这篇文章是关于Java面试的第二天笔记,涵盖了HashMap与HashTable的区别、ConcurrentHashMap的实现原理、IOC容器的实现方法、字节码的概念和作用、Java类加载器的类型、双亲委派模型、Java异常体系、GC如何判断对象可回收、线程的生命周期及状态,以及sleep、wait、join、yield的区别等十道面试题。
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
|
22小时前
|
存储 Java
|
5天前
|
存储 关系型数据库 MySQL
一天五道Java面试题----第八天(怎么处理慢查询--------->简述Myisam和innodb的区别)
这篇文章是关于Java面试中关于数据库性能优化和MySQL特性的五个问题,包括处理慢查询、ACID特性保证、MVCC概念、MySQL主从同步原理以及MyISAM和InnoDB存储引擎的区别。
|
5天前
|
前端开发 Java 编译器
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
13 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)
|
11天前
|
Java
JAVA中public class和class的区别
JAVA中public class和class的区别
26 7
|
6天前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
16 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
|
10天前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
29 4
|
8天前
|
Java
Java中notify 和 notifyAll有什么区别
【8月更文挑战第10天】Java中notify 和 notifyAll有什么区别
15 0
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。