21xrx.com
2024-12-22 19:11:05 Sunday
登录
文章检索 我的文章 写文章
Java面向对象:封装、继承和多态解析
2023-06-13 01:26:58 深夜i     --     --
Java 面向对象 封装 继承 多态

Java作为一种高级编程语言,强调面向对象的编程思想。而对象的三大特性分别为封装、继承和多态。这三个概念在Java编程中都有着不可替代的重要性,对于Java程序员而言,掌握它们更是必不可少的。

一、封装

封装是面向对象编程中的重要特性之一,其主要目的是隐藏对象的属性和实现细节,使得对象的行为可以符合规范。这种隐藏被称为“信息隐藏”或“数据隐藏”。

Java中通过public、private、protected关键字来实现封装,即在类中定义成员变量时,将其设置为私有(private)的,外部无法直接访问,同时为其提供公有(public)的getter和setter方法,以方便外部访问和修改。以下是一个封装的例子:

public class Person {

  private String name;

  private int age;

  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;

}

二、继承

继承是指使用已存在的类作为基础创建新类的机制。在Java中,使用extends关键字实现继承。继承关系中,子类可以继承父类的属性和方法,并且可以在其中添加自己的属性和方法。

以下是一个继承的例子:

public class Student extends Person {

  private String grade;

  public String getGrade()

    return grade;

  public void setGrade(String grade)

    this.grade = grade;

}

在上面的例子中,Student类继承了Person类,它可以使用Person类中的getName()和getAge()方法,并且在其中添加了自己的属性grade和方法getGrade()。

三、多态

多态是指同一类型的对象,在不同情况下会有不同的表现形式。在Java中,多态可以通过方法重载和方法覆盖来实现。

方法重载(Overload)指同一个类中,多个方法名称相同,但参数数量或类型不同的情况。在编译时,编译器会根据不同的参数列表来自动选择调用合适的方法。

以下是一个方法重载的例子:

public class Calculator {

  public int add(int x, int y) {

    return x + y;

  }

  public double add(double x, double y) {

    return x + y;

  }

}

方法覆盖(Override)指子类重新定义了其父类中的方法,而父类中的该方法已有默认实现。当子类对象调用此方法时,将执行子类中的方法覆盖父类中的该方法。

以下是一个方法覆盖的例子:

public class Animal {

  public void move() {

    System.out.println("动物可以移动");

  }

}

public class Dog extends Animal {

  public void move() {

    System.out.println("狗可以跑和走");

  }

}

在上面的例子中,Dog类继承了Animal类,并覆盖了其move()方法,从而改变了该方法的表现形式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复