`
zjf201172653
  • 浏览: 46582 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java中的继承、封装、多态、抽象

阅读更多

                             Java中的继承、封装、多态、抽象

 

1.继承

        java 和某些面向对象语言(如 c++)在实现继承的不同之处在于java只支持单继承,不支持多重继承。即java 中一个类只能继承于另一个类。我们将被继承的类称之为父类(基类),继承类称之为子类(派生类)。在java 中用关键字extends 来实现单继承。实现继承关系的类之间有着必然的联系,不能将不相关的类实现继承,就象人类不能继承于鸟类!
       那怎么去判断类和类之间是否有着必然联系呢?实际上,前面我们已知当某类A和类 B之间有着共同的属性和行为时,那么类A 和类 B之间就可能是继承关系或者有着共同的父类。继承带来了三个好处:减少代码冗余;维护变得简单;扩展变得容易。构造方法不能被继承!一个类得到构造构造方 法只有两种途径:自定义构造方法;使用JVM分配的缺省构造方法。但是,可以在子类中可以通过super关键字访问父类的构造方法。 

继承:好比如你继承你老爸的事业,等于你有了你老爸一样的东西。
     在程序里,以class A是爸,class B extends A代表B继承A,B也就有了A的一切,即属性与方法。
     但不能拥有你爸爸的秘密的东西,比如他的日记,也就是不能继承私有属性与方法。

2.多态

       运行时多态性是面向对象程序设计代码重用的一个最强大机制,Java多态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。

       方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种 表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方 法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。方法的重写Overriding和重载Overloading是Java多态性的不同表现。

多态性:发送消息给某个对象,让该对象自行决定响应何种行为。 
        通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用

3.抽象

       所有编程语言的最终目的都是提供一种“抽象”方法。

       汇编语言是对基础机器的少量抽象。后来的许多“命令式”语言(如FORTRAN,BASIC 和C)是对汇编语言的一种抽象。与汇编语言相比,这些语言已有了长足的进步,但它们的抽象原理依然要求我们着重考虑计算机的结构,而非考虑问题本身的结构。在机器模型(位于“方案空间”)与实际解决的问题模型(位于“问题空间”)之间,程序员必须建立起一种联系。这个过程要求人们付出较大的精力,而且由于它脱离了编程语言本身的范围,造成程序代码很难编写,而且要花较大的代价进行维护。为机器建模的另一个方法是为要解决的问题制作模型。对一些早期语言来说,如LISP 和APL,它们的做法是“从不同的角度观察世界”——“所有问题都归纳为列表”或“所有问题都归纳为算法”。PROLOG 则将所有问题都归纳为决策链。对于这些语言,我们认为它们一部分是面向基于“强制”的编程,另一部分则是专为处理图形符号设计的。每种方法都有自己特殊的用途,适合解决某一类的问题。但只要超出了它们力所能及的范围,就会显得非常笨拙。

       面向对象的程序设计在此基础上则跨出了一大步,程序员可利用一些工具表达问题空间内的元素。由于这种表达非常普遍,所以不必受限于特定类型的问题。我们将问题空间中的元素以及它们在方案空间的表示物称作“对象”(Object)。当然,还有一些在问题空间没有对应体的其他对象。通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。所以在阅读方案的描述代码时,会读到对问题进行表达的话
语。与我们以前见过的相比,这无疑是一种更加灵活、更加强大的语言抽象方法。总之,OOP 允许我们根据问题来描述问题,而不是根据方案。然而,仍有一个联系途径回到计算机。每个对象都类似一台小计算机;它们有自己的状态,而且可要求它们进行特定的操作。与现实世界的“对象”或者“物体”相比,编程“对象”与它们也存在共通的地方:它们都有自己的特征和行为。

4.封装

    封装是JAVA面向对象的特点的表现,封装是一种信息隐蔽技术它有两个含义,即把对象的全部属性和
全部服务结合在一起,形成一个不可分割的独立单位,以及尽可能隐藏对象的内部结构,也就是说,如果
我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。
    封装:就是遥控车一样,你有个遥控,就能控制车子,但你是看不到遥控的电路设计的,因为你不必
要知道,为什么要封闭,就怕你乱接电路,让遥控用不了。
    程序里,在属性和方法前面加上private关键字,就表示封闭属性和方法了,只能类的内部访问。
    在java中是通过各种访问限定符来实现数据封装的,共分为四种访问级别(由高到低):
private(私有)、friendly(缺省)、protected(受保护)、public(公共)。注意:以上四种访问修饰符可以
作用于任何变量和方法,类只可以定义为默认或公共级别(嵌套类除外)。 
public(公共) 
当变量或方法被public修饰时,该变量和方法可以在任何地方(指的是任何包中)的任何类中被访问;
protected(受保护的) 
当类的变量或方法被 protected 修饰时,该变量和方法只可以在同包中的任何类、不同包中的任何当前
类的子类中所访问。即不同包中的任何不是该类的子类不可访问级别为protected的变量和方法。 
friendly(缺省的) 
当类的变量和方法没有显式地被任何访问区分符修饰时,该变量和方法的访问级别是缺省的。缺省的变量
和方法只能在同包的类中访问。 
private(私有的) 
被 private 所修饰的所有变量和方法只能在所属类中被访问。即类的私有成员和变量只能在当前类中被
访问。
1
2
分享到:
评论
1 楼 闫老三 2013-08-08  
收藏一下~

相关推荐

    Java实验报告——类的继承、多态的应用

    在本实验报告中,我们将深入探讨Java编程中的两个核心概念:类的继承和多态的应用。实验主要目标是加深对抽象类和抽象方法的理解,并掌握如何在实际编码中实现类的继承以及多态性。 首先,让我们理解抽象类和抽象...

    封装、继承、多态.docx

    封装、继承、多态 一、 封装 封装是面向对象编程的三大特性之一,它是指将同一类事物的特性与功能包装在一起,对外暴露调用的接口...Java 面向对象的三大特性是:封装、继承与多态。这三大特性是面向对象编程的核心。

    Java封装继承多态实例以及文件流操作

    在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...

    four_java继承封装和多态_four_againgpg_

    在这个名为"four_java继承封装和多态_four_againgpg_"的压缩包中,我们预计将看到三个不同的Java类,这些类展示了如何在实际编程中应用这些概念。 首先,让我们详细了解一下这三个概念: 1. **继承(Inheritance)...

    教学视频-继承&多态

    在编程领域,继承和多态是面向对象编程(OOP)中的两个核心概念,尤其是在Java这样的面向对象语言中。这两个概念极大地增强了代码的重用性和灵活性,使得软件设计更加高效和模块化。以下是对这两个概念的详细解释: ...

    详解java封装继承多态

    Java 中的封装、继承和多态是面向对象编程(Object Oriented Programming)三大特性。下面,我们将详细介绍这三者之间的关系和应用。 封装是指将数据和方法放入类中,并控制对数据的访问权限。封装可以拆开理解为两...

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象编程是Java的核心特性,本教程主要涵盖了三个关键概念:封装、继承和多态,以及相关的访问修饰符和方法修饰符。 封装是面向对象编程的基础,它涉及到将数据(属性)和操作这些数据的方法(行为)组合在一个...

    集合+接口+继承+多态。。

    在Java编程语言中,"集合+接口+继承+多态"是四个核心概念,它们构成了Java面向对象编程的基础。下面将分别对这四个概念进行详细解释,并探讨它们之间的相互关系。 1. **集合**: 集合是Java中用于存储多个对象的数据...

    一个实例告诉你什么是封装继承和多态

    封装、继承和多态是面向对象编程的三大特性,它们是Java、C#、Python等许多编程语言中的核心概念。本文将通过一个实例详细解析这三个概念,并以`ConsoleApplication1`为例来阐述。 首先,封装是面向对象编程的基础...

    封装,继承,多态,抽象,接口【Java一周入门教程6】

    封装,继承,多态,抽象,接口【Java一周入门教程6】

    Java中的继承和多态.pdf

    Java是一种面向对象的编程语言,其核心特性包括封装、继承和多态。本文将深入探讨Java中的继承和多态。 1. **继承** - **继承的概念**:继承是类之间的一种关系,允许一个类(子类)继承另一个类(父类)的属性和...

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

    在OOP中,最重要的四个概念是抽象、封装、继承和多态。 #### 二、抽象 抽象是指隐藏复杂性的过程,以便用户只需要关注如何使用对象,而不需要了解对象内部的工作原理。在面向对象编程中,可以通过接口和抽象类来...

    动物练习.NET面向对象继承多态

    在.NET框架中,面向对象编程(Object-Oriented Programming,OOP)是一种强大的软件开发范式,它基于类和对象的概念,以及封装、继承、多态等核心特性。本实践项目名为“动物练习”,旨在通过模拟不同类型的动物来...

    211107-封装、继承、多态、抽象上课讲解案例.rar

    在编程领域,面向对象编程(Object-Oriented Programming, OOP)是核心概念之一,而封装、继承、多态和抽象是OOP的四大支柱。这些概念为软件开发提供了结构化和可维护性的基础,使得代码更加灵活和可扩展。下面我们...

    Java基础入门教程 第4章 继承和多态(共36页).ppt

    Java中的继承和多态是面向对象编程的重要概念,它们极大地提高了代码的复用性和灵活性。在本章中,我们将深入探讨这两个主题。 首先,我们来理解一下继承的概念。继承允许一个类(子类)从另一个类(父类)中继承...

    类和对象、对象和封装、继承、多态、异常等教学...

    - **接口**:接口是Java中定义行为的规范,它包含一组抽象方法。"第六章 接口.pdf"会介绍接口的定义、实现以及接口与多态的关系。 6. **异常处理**: - **异常**:异常是在程序运行过程中出现的非正常情况,Java...

    9、Java面向对象之继承和多态作业题[收集].pdf

    在Java编程语言中,面向对象是其核心特性之一,它包括了封装、继承和多态等概念。这里的作业题主要涉及到了继承和多态这两个面向对象的重要知识点。 首先,我们来详细讲解一下**继承**。继承是面向对象设计的一个...

    Java三剑客:封装、继承、多态的魔法世界

    通过本章的学习,我们了解了Java中的三大核心特性:封装、继承和多态。这些特性是面向对象编程的基础,也是Java语言的重要组成部分。封装帮助我们保护数据并控制对数据的访问;继承使我们能够复用代码并创建更复杂的...

Global site tag (gtag.js) - Google Analytics