`
929118967
  • 浏览: 21939 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
博客专栏
Fcebf22e-9505-38db-b3f2-65fdcc3fd6a5
java开发的深入浅出
浏览量:7142
文章分类
社区版块
存档分类
最新评论

java笔记之封装、继承、重写、多态以及类型转换

 
阅读更多

前言

今天来谈谈Java中面向对象的主要的具体表现即封装,继承和多态。这是基础的重点。

正文

封装

隐藏实现细节

1)封装的步骤:

1))将属性私有化,使用private修饰符,修饰需要隐藏的方法和属性

2))提供共有的方法,访问私有属性(getter,setter)

注:

封装的目的是减少类与类的关联度

2)封装的规范:

1))修饰属性的可见度,来限制对属性的访问

2))为每个属性创建一对赋值和取值方法

3))在setter和getter方法中加入对属性的限制

3)封装的好处:

1))增加了数据的访问限制,增强了程序的安全性

2))为属性提供了一系列的规则,从而对属性起到保护的作用

3))从广义的角度上隐藏了实现细节

注:

1))方法签名的概念方法签名是方法名+参数列表

2))重载跟返回值无关

继承

事物之间存在相同的特性且存在包含关系,一个事物拥有另一个事物的特征,且具备自己的独立性。

1)语法:

extends,表名正在构建的类,派生于一个已经存在的类

注:

1))一般都是在父类中定义一般的属性和方法,让子类来继承它们。

2))一切的祖先是Object

2)继承的特性:

1))java是单继承的

2))子类继承父类中非private的属性和方法

3))子类被初始化之前,父类会先被初始化

(父类的构造器先于子类的构造器调用执行,先进行子类的构造器,却先执行父类的构造器,可使用debug来进行测试)

4))子类没显示的调用父类的构造器,则JVM会默认调用父类的无参构造器

(父类的默认构造器可调用;即父类没有其他的构造器,或者显示的提供父类的默认构造器)

5))用super方法显示调用父类的构造器,且他必须在子类构造器的第一行

注:

1))在创建子类时,如果子类的构造器中没有显式的调用父类构造器,在javac时,在子类的构造器的第一行自动加上super();

2))this,和super不能同时出现在构造器中,因为他们都要求在第一行

重写

子类中拥有父类相同的方法,但功能实现却不同。在调用时,优先使用子类的方法来完成功能。(前提是,父类的方法不能被私有化)

1)重写的要求:

1))存在继承关系

2))方法签名和放回值必须相同

3))访问的修饰符的可见性不能降低,声明的异常不能比父类方法的异常范围大。

4))访问控制修饰符的限制范围的总结



多态

行为多态:重写和重写

引用多态:基类对象的引用指向子类的对象

1)行为多态:

重载:

1))在子类中,有多个相同的方法名,而参数列表不同

2))在子类和父类中,如果父类中的方法被子类继承,而子类中拥有和父类相同方法名,参数列表不同

重写:

子类方法的修饰符不能小于父类的修饰符范围,异常不能大于父类的范围

2)引用多态:

注:

基类引用.子类属性,将编译出错

因为,基类的引用对象是子类类型,这是java阶段的内存结构;而java代码执行需要javac,java两个阶段,所以他在javac阶段无法通过编译

例:

Human h=new Teacher();

1))在编译阶段,涉及到类型转换,从小的转换到大的

2))在执行阶段:使用基类引用指代堆区中的子类对象

注:java变量两种类型

1)) 一种是编译类型,一种是运行类型。

2))编译类型有变量的类型决定

3))运行时类型是实际对象类型决定。

4))如果这两种类型不一致,这种现象为动态绑定,又叫引用多态

类型转换

1.自动转换

(向上转换):小类型--->大类型

2.强制转换:

1)语法:

子类型 变量名=(子类型)

注:

1))转换的前提是,存在继承关系

2))instanceof 关键字 用于判断对象的类型

总结

理解好多态对后面的面向接口编程有很大的帮助。
自己思考一下多态跟编程的设计原则的低解耦的关系。

分享到:
评论

相关推荐

    学习笔记:抽象封装、继承、多态.doc

    ### 学习笔记: 抽象封装、继承、多态 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”来设计软件。对象是由数据(即字段或属性)和对这些数据进行...

    java 笔记, 讲解多态 面向对象

    面向对象编程的核心概念包括:封装、继承和多态。其中,封装确保了数据的安全性;继承允许创建新类时继承现有类的属性和行为;而多态则使程序具有更大的灵活性和扩展性。 #### 二、多态的概念与意义 多态是指同一...

    【初学者必备】python封装继承多态笔记

    ### Python面向对象编程基础:封装、继承与多态 #### 封装 **定义与作用:** 封装是面向对象编程的一个基本概念,指的是将数据及其相关的操作捆绑在一起,对外提供一个干净的接口,隐藏实现细节。封装使得代码更加...

    尚硅谷JAVA基础笔记吐血整理

    “尚硅谷JAVA基础笔记”涵盖了Java语言的基础知识,包括语言概述、基本语法、面向对象概念、封装、继承和多态,以及一些关键概念如形参与实参、属性与局部变量、构造器、this关键字、包和MVC设计模式的使用。...

    多态和接口学习笔记

    多态性是面向对象编程的三大特性之一,另外两个是封装和继承。接口则提供了类之间的抽象连接,允许不同类实现相同的功能。 **一、多态** 多态是指同一种行为可以有多种不同的形态,它允许我们用一个父类型的引用去...

    java笔记 java笔记

    - **显式类型转换**:通过`(类型)`进行类型转换。 ##### 4.4 控制流 Java提供了多种控制流语句,如if-else、switch-case、for循环、while循环等。 #### 5. 数组 数组是存储相同类型元素的有序集合。Java支持一维...

    瑜琅java学习笔记

    - 作为一种面向对象的语言,Java的设计强调了封装、继承和多态这三个核心概念。 ##### 2.1 对象概念 - 在Java中,几乎所有的数据都是对象形式存在。 - Java采用了对象导向编程(OOP)的思想,将数据和操作这些数据的...

    Java学习笔记(必看经典).pdf

    面向对象编程的四个基本原则是:抽象、封装、继承和多态,它们共同构成了Java的OOP模型。 在Java语言中,类是创建对象的模板或蓝图。一个类可以定义多个方法,每个方法具有唯一的名称和一个参数列表,以及可选的...

    王者归来之Thinking in java读书笔记

    Java是一种面向对象的编程语言,它以类为基本单位进行组织,强调封装、继承和多态三大特性。在《Thinking in Java》中,作者详细讲解了这些概念,包括如何定义类、创建对象,以及如何通过接口实现多态性。 接着,书...

    《良葛格的Java学习笔记》

    笔记会阐述如何定义类,创建对象,以及封装、继承和多态三大面向对象特性。 5. **封装**:封装是将数据和操作数据的方法打包在一起,通过访问修饰符(public、private、protected)来控制数据的访问权限。 6. **...

    Java学习笔记

    ### Java学习笔记:深入理解继承、多态与抽象 #### 一、面向对象的三大特性:封装、继承、多态 面向对象编程的核心在于其三大特性:封装、继承和多态。这三种特性使得面向对象编程更加灵活和高效。 1. **封装**:...

    java上课笔记

    2. **封装**:封装是面向对象编程的三大特性之一,它隐藏了对象的内部实现细节,只对外提供公共接口进行交互。通过访问修饰符(如public, private, protected)来控制数据的访问权限,从而增强了代码的安全性。 3. ...

    个人整理java笔记

    在Java中,多态主要通过方法重写和接口实现。 - **面向对象的好处**: - **易于复用**: 类的设计使得其他程序员可以轻松地使用已有的代码。 - **易于扩展**: 如果需要增加新功能,只需要修改现有的类或添加新的类...

    java学习笔记 继承 重载 覆盖

    Java编程语言的学习涉及众多核心概念,本篇笔记主要探讨了几个关键知识点:继承、重载和覆盖。首先,我们从Java环境配置开始,确保能够正确地运行Java程序。在Windows系统中,需要设置环境变量PATH,指向JDK安装目录...

    达内java笔记

    "达内java笔记"涵盖了Java的基础概念,如类、对象、封装、继承、多态等核心特性。 1. 类与对象:Java是面向对象的语言,一切皆为对象。类是创建对象的模板,包含了对象的状态(属性)和行为(方法)。通过定义类,...

    java笔记

    面向对象编程是Java的核心特性之一,它通过**封装**、**继承**、**多态**等概念来组织和管理代码。 - **类与对象** - 类是对具有相同属性和行为的对象的抽象表示。 - 对象是类的具体实例。 - 类定义了对象的结构...

    java笔记,上课笔记

    1. **继承、封装、多态**: - 继承是面向对象编程的基础特性,允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用。 - 封装是将数据和操作数据的方法绑定在一起,隐藏内部实现细节,提供...

    java基础知识笔记 java基础知识笔记

    5. **封装、继承和多态**:封装是隐藏对象的属性和实现细节;继承允许一个类(子类)继承另一个类(父类)的属性和方法;多态则是指同一种行为可以有不同的表现形式,如方法重写和重载。 6. **构造器**:用于初始化...

    java 基础笔记大全

    总之,Java基础笔记大全中的内容详细介绍了Java面向对象编程的基础,包括如何定义和使用类、对象,以及如何利用封装、继承和多态来构建复杂的软件系统。这些知识是理解Java编程的关键,也是进一步学习Java高级特性和...

    java笔记整理(超详细).pdf

    2. 面向对象(封装,继承,多态) 3. 平台无关性(Java虚拟机实现平台无关性) 4. 可靠性 5. 安全性 6. 支持多线程 7. 支持网络编程并且很方便 8. 编译与解释并存 面向过程和面向对象的区别: 面向过程:优点是...

Global site tag (gtag.js) - Google Analytics