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

原文地址:https://www.cnblogs.com/czl362326/p/5621776.html