一、封装

  封装是指隐藏对象的属性及实现细节,对外仅提供接口可见。封装实现了信息隐藏,利于软件复用。其优点是达到了模块化的标准,从而提高了代码的复用程度。在某种程度上,封装也大大改善了软件开发的可维护性,降低了构建复杂软件系统的风险。

public class TV {
  private int volume;
  private int color;
  public int getVolume() {
    return volume;
  }
  public void setVolume(int volume) {
    this.volume = volume;
  }
  public int getColor() {
    return color;
  }
  public void setColor(int color) {
    this.color = color;
  }

  public void turnOn(){
    turnOn_impl();
  }

  //开机内部实现
  private void turnOn_impl(){
    //...
  }

}

上面代码定义了一个电视机类TV,包含两个属性:音量volume,颜色color,还定义了一些方法。从类的属性可以看到,音量volume、颜色color属性均定义成private私有类型,只能通过相关方法对其操作。类TV对其属性volume、color实现了封装。

二、继承

  继承是指一个类是从另一个类派生而来的,派生类自动具有了被继承类的所有特性。被继承类称为父类,继承父类的类称为子类。继承可以是子类具有父类的各种属性和方法,而不需要再次编写相同的代码。继承也极大地促进了软件的复用,而且继承的形式可以更加复杂。

public class GeneralTV extends TV{
  public static void main(String[] args) {
    GeneralTV tv = new GeneralTV();
    tv.setVolume(1);
    System.out.println(tv.getVolume());
  }
}

GeneralTV继承了TV,因此拥有TV的属性和方法。

三、多态

  多态是指对于一种服务功能,可以具有不同的实现方式,即多种形态。多态形象地描述了现实世界的复杂形态,使程序具有良好的扩展性。在继承的基础上,方法重载是实现多态的方式之一。

public class Human {
  public void sayHello(){

  }
}

class Chinese extends Human{
  public void sayHello(){
    System.out.println("您好");
  }
}

class American extends Human{
  public void sayHello(){
    System.out.println("hello");
  }
}
class testclass{
  public static void main(String[] args) {
    Chinese c = new Chinese();
    c.sayHello();
    American a = new American();
    a.sayHello();
  }
}

以上代码首先定义了父类Human,只具有一个方法,方法没有具体的实现。然后分别定义了两个子类Chinese和American,均继承类Human,并且都对sayHello方法实现了重写,具有各自不同的实现方式。

java三大特性性:封装、继承和多态的更多相关文章

  1. java三大特性:封装、继承、多态

    Java三大特性之封装   一.定义 封装性指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问. 二.使用封装的好处: 1 ...

  2. Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

    Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ​ 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...

  3. JAVA三大特性之一——封装

    自学java已经有一段时间了,但是感觉对于很多知识点还是有必要总结和整理一下,下面我就来说一下我对JAVA三大特性之一——封装特性的认识和理解. 封装,从字面意思可以看出来,就是包装,也就是把我们写好 ...

  4. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  5. Java三大特性:封装,继承,多态

    java提高篇(一)-----理解java的三大特性之封装 概念: 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独 ...

  6. java三大特性(封装、继承、多态)

    oop(面向对象程序设计)具有三大特性:封装.继承.多态 一.封装 封装就是讲类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类的实现隐藏信息的操作和访问. 实现封装 1.需要修改属性的访问 ...

  7. Java 三大特性:封装、继承、多态

    一.封装: 对内 可封装自己的实现细节,使之信息隐藏不被其它类破坏: 对外 各个类之间分工明确, 其它类无需关心实现细节,类中细节发生改变,其它类也无需作出更改: 二.继承: 从已有的类中派生出新的类 ...

  8. 浅谈Java三大特性之封装

    目录 前言 好处 介绍(实现方式) 示例 小结 感谢阅读!!! 三大特性之浅谈封装 前言 英语:Encapsulation--封装,包装. 面向对象的封装与真实世界的目的是一样的.封装能够使外部访问者 ...

  9. Java三大特征:封装 继承 多态

    内部类:成员内部类.静态内部类.方法内部类.匿名内部类. 内部类:定义在另外一个类里面的类,与之对应,包含内部类的外部类被称为外部类. 内部类的作用:(1)内部类提供了更好的封装,可以把内部类隐藏在外 ...

随机推荐

  1. C#调用VC DLL堆栈不对称

    今天在调程序时,C#调用VC 编译的dll出现堆栈不对称,查了一下资料,转载在这里供大家参考. 问题描述:对 PInvoke 函数“xxFunction()”的调用导致堆栈不对称.原因可能是托管的 P ...

  2. 改变SQL默认数据库的存储路径

    数据库默认路径保存在注册表里,我们可以通过xp_instance_regwrite来修改注册表,具体可以试试下面的方法: --1.更改資料文件默認存放路經:EXEC xp_instance_regwr ...

  3. ubuntu glusterfs 配置调试

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADpCAIAAACfoakcAAAgAElEQVR4nO2d2XMjSX7f8c+sQ4GwHY

  4. Android学习之 博客专栏 与 资料

    android | Android Developers Android学习系列 - 谦虚的天下 - 博客园 android基础 - 生如夏花之灿烂 - 博客园 Android开发 - 皓月繁星 - ...

  5. Jquery JS 正确比较两个数字大小的方法

    if(2 > 10) { alert("不正确!"); } 此比较不会是想要的结果:它相当于2 >1,把10的第一位取出来比较. ——————————————————— ...

  6. 【JAVA - SSM】之MyBatis动态SQL

    动态SQL就是在SQL语句中添加一些标签,以完成某些逻辑.通常用到的动态SQL标签有<if>.<choose>.<where>.<trim>.<s ...

  7. Install Package and Software

    svn http://tortoisesvn.sourceforge.net/ git https://download.tortoisegit.org/ http://git-for-windows ...

  8. [caffe]深度学习之图像分类模型VGG解读

    一.简单介绍 vgg和googlenet是2014年imagenet竞赛的双雄,这两类模型结构有一个共同特点是go deeper.跟googlenet不同的是.vgg继承了lenet以及alexnet ...

  9. [Angular 2] ROUTING IN ANGULAR 2 REVISITED

    Let's say we have a list of contacts, click each contact, we can render a new route to get the detai ...

  10. System Address Map Initialization in x86/x64 Architecture Part 2: PCI Express-Based Systems

      原文  http://resources.infosecinstitute.com/system-address-map-initialization-x86x64-architecture-pa ...