`
flj643213995
  • 浏览: 13073 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

java中对封装、继承、多态的理解

阅读更多
   一、封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private实现封装。
      封装的作用如下:
① 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
②对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。
看一个例子:
public class Man{

//对属性封装,姓名,年龄,妻子都是私有的
private String name;
Private int age;
private Woman wife;

//对外界提供方法的封装,可以设定和获取男人的年龄和姓名,但是男人不想妻子被外界
//打扰,所以不可以获得他的妻子,
public void setWife(Woman wife) {
    this.wife = wife;
  }
public String getName() {
  return name;
  }
public void setName(String name) {
  this.name = name;
  }
public int getAge() {
  return age;
  }
public void setAge(int age) {
  this.age = age;
  }
}


   二、继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
       为什么要继承呢:1、反映现实的真实关系
            2、减少代码冗余
            3、对父类的属性和方法进行扩展和重写
        继承中,子类不可以选择性的继承父类的东西,而是全部继承父类的属性和方法。其中父类又叫超类或基类,子类又叫派生类。父类是子类的一般化,子类是父类的特化(具体化)。java中不支持多继承,一个类最多只能有一个父类。而在java中多继承是通过接口实现的。

例子:
//创建一个2D图形类
public class shape2D{
   
    //2D图形有大小的属性
    public int size;

    //2D图形有计算周长和面积的方法
    public void Length(){
    System.out.println("可以计算周长");
    }
    public void Area(){
    System.out.println("可以计算面积");
    }
}


//创建一个圆类,继承2D图形类
public class circle extends shape2D{

   //特有的半径属性
   public float R;

   //获得半径的方法
   public void GetR(float r){
   R=r;
   }
}

在这个小程序中,圆类不仅有自己特有的属性和方法,也继承了shap2D类的属性和方法,这样写就减少了代码的冗余。


      三、多态是由于继承和重写机制,相同类型的对象,执行相同的方法,得到的结果可能不一样。
   
例如:我再给以上例子的圆类中加一些代码:
public class circle extends shape2D{

   //特有的半径属性
   public float R;

   //获得半径的方法
   public void GetR(float r){
   R=r;
   }

   //重写周长和面积的方法
    public void Length(){
    float a = (float) ((float)2*3.14*R);;
    System.out.println("周长是"+a);
    }
    public void Area(){
    float b = (float)3.14*R*R;
    System.out.println("面积是"+b);
    }

}

再写一个测试代码:
public static void main(String[] args) {

   circle cir = new circle();
   cir.GetR(3);
   cir.Area();
   cir.Length();   
}

测试结果并不是shape2D中的方法执行的结果,由于方法相同,但是继承之后子类重写了方法,方法体不同,导致了最后结果不一样,这就是多态。





分享到:
评论

相关推荐

    封装继承多态总结

    封装继承多态总结

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析.md

    Educoder题目:Java面向对象 - 封装、继承和多态答案解析

    Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析.md

    Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析

    java基础继承封装多态

    本资源摘要信息将对 Java 基础知识点进行总结,涵盖继承、封装、多态等概念,并对面向对象的设计、数据库设计模式等进行讲解。 继承 继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是...

    java面向对象三要素封装继承和多态源码

    java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素封装继承和多态源码java面向对象三要素...

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

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

    java 三大特性--封装、继承和多态理解

    通过分析给定的文件名称"demo",我们可以推测这是一个示例代码或者演示程序,可能包含了对Java封装、继承和多态的实践应用。在深入研究这个"demo"文件之前,开发者可以先理解这三个基本概念,以便更好地理解代码逻辑...

    java封装 继承与多态

    java封装 继承与多态 程序设计 类与对象

    JAVA封装继承与多态PPT教案学习.pptx

    JAVA 封装继承与多态是面向对象程序设计语言中三个重要的概念,本文将对这三个概念进行详细的解释。 一、封装 封装是指隐藏对象的内部细节,使对象外部不能随意存取对象的内部数据的过程。JAVA 中,对象就是一个...

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    OOP 的主要特征包括封装、继承和多态。 1. **封装**:封装是将数据和操作数据的方法捆绑在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样可以减少外部环境对对象的影响和破坏,提高代码的安全性和...

    java中继承与多态的题目

    Java 中继承与多态的题目 本资源摘要信息是关于 Java 中继承和多态的题目,涵盖了面向对象编程的基本概念和继承机制的应用。 继承的概念 继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)...

    前端模块化脚手架,可实现类似java的封装继承多态特性

    这个名为“前端模块化脚手架”的工具,旨在为前端开发者提供一个类似于Java语言的封装、继承和多态特性的开发环境。通过这样的框架,开发者可以在JavaScript中模拟出面向对象编程的特性,使前端开发更加规范和高效。...

    封装、继承、多态.docx

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

    java面向对象的基本知识,封装继承多态等

    java面向对象的基本知识,封装继承多态等

    Java面向对象编程(封装/继承/多态)实例解析

    在 Java 中,面向对象编程主要体现在三大特征:封装、继承和多态。 封装是指隐藏对象的内部细节,而仅暴露必要的信息给外部世界。通过封装,可以保护对象的内部状态,并提供对外部访问的接口。在 Java 中,封装可以...

    详解java封装继承多态

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

    jave 继承、封装、多态

    在Java中,通过访问修饰符(如`private`、`public`等)实现封装,限制对类内部数据的直接访问。例如,`MobilePhone`类中的`weight`和`color`属性被声明为`private`,不允许直接访问。用户只能通过`public`的`get`和`...

    封装、继承、多态一语道破

    ### 封装、继承、多态一语道破 #### 一、封装 ...总之,封装、继承、多态是面向对象编程中的三大核心特性,它们共同构成了面向对象程序设计的基础,帮助开发者构建出更加健壮、灵活和可维护的软件系统。

    java总结,基础语法,面向对象,封装继承多态,异常

    java总结,基础语法,面向对象,封装继承多态,异常

    four_java继承封装和多态_four_againgpg_

    在Java编程语言中,继承、封装和多态是面向对象编程的三大核心概念,它们构成了Java类层次结构的基础。在这个名为"four_java继承封装和多态_four_againgpg_"的压缩包中,我们预计将看到三个不同的Java类,这些类展示...

Global site tag (gtag.js) - Google Analytics