zoukankan      html  css  js  c++  java
  • java三大特性性:封装、继承和多态

    一、封装

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

    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方法实现了重写,具有各自不同的实现方式。

  • 相关阅读:
    设计模式系列
    Python3 系列之 可变参数和关键字参数
    设计模式系列
    【HANA系列】SAP HANA ODBC error due to mismatch of version
    【FICO系列】SAP FICO FS00修改科目为未清项目管理
    【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍
    【HANA系列】SAP HANA SQL获取当前日期加若干天后的日期
    【HANA系列】SAP HANA SQL获取本周的周一
    【HANA系列】SAP HANA SQL获取当前日期
    【HANA系列】SAP HANA SQL获取当前日期最后一天
  • 原文地址:https://www.cnblogs.com/czl362326/p/5621776.html
Copyright © 2011-2022 走看看