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

  • 相关阅读:
    .net core使用NLog+Elasticsearch记录日志
    .net core使用EasyNetQ做EventBus
    .net core使用Apollo做统一配置管理
    .net core使用App.Metrics+InfluxDB+Grafana进行APM监控
    .net core使用Ocelot+Identity Server统一网关验证
    .net core微服务之基于Docker+Consul+Registrator服务注册服务发现
    windows上禁止某个软件联网
    Windows修改命令行默认启动路径
    Win10对调Esc和CapsLock键
    animation模块的使用
  • 原文地址:https://www.cnblogs.com/czl362326/p/5621776.html
Copyright © 2011-2022 走看看