21xrx.com
2024-11-08 20:20:18 Friday
登录
文章检索 我的文章 写文章
Java面向对象编程的三大特征:封装、继承和多态
2023-06-15 20:20:42 深夜i     --     --
封装 继承 多态

Java是一种面向对象的编程语言,它最显著的特征就是封装、继承和多态。这三个特征使得Java程序具有更好的可维护性、复用性和扩展性。下面通过代码案例来详细介绍这三个特征。

1. 封装

在Java中,可以通过访问修饰符来控制类的成员的访问权限,这就是封装。封装可以将数据和方法封装在类的内部,只暴露必要的接口给外部,从而保证了程序的安全性和可维护性。

下面是一个封装的例子:


public class Student {

  private int id;

  private String name;

  private int age;

  public int getId()

    return id;

  

  public void setId(int id)

    this.id = id;

  

  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;

  

}

在这个例子中,id、name和age都是private访问修饰符,只能被Student类内部的方法所访问。外部无法直接访问这些变量,需要通过set方法和get方法来访问。

2. 继承

继承是Java中实现代码复用的一种方式。子类可以继承父类的属性和方法,从而减少了代码的冗余。子类可以在继承父类的基础上添加一些自己的特有的方法和属性,从而实现更高级别的功能。

下面是一个继承的例子:


public class Animal {

  protected String name;

  protected String color;

  public void run() {

    System.out.println(name + " is running.");

  }

}

public class Dog extends Animal {

  public void bark() {

    System.out.println(name + " is barking.");

  }

}

在这个例子中,Dog类继承了Animal类的name和color属性,以及run方法。在Dog类中还定义了一个bark方法。通过继承,Dog类就能够使用Animal类中的方法和属性,同时还能够添加自己的特有的功能。

3. 多态

多态是Java中最强大的特性之一。它使得程序能够根据情况自动选择使用适合的方法。多态可以通过继承、接口和重载等方式实现。

下面是一个多态的例子:


public interface Shape {

  void draw();

}

public class Circle implements Shape {

  @Override

  public void draw() {

    System.out.println("Drawing a circle.");

  }

}

public class Square implements Shape {

  @Override

  public void draw() {

    System.out.println("Drawing a square.");

  }

}

public class Main {

  public static void main(String[] args) {

    Shape shape1 = new Circle();

    Shape shape2 = new Square();

    shape1.draw();

    shape2.draw();

  }

}

在这个例子中,Shape是一个接口,定义了一个draw方法。Circle和Square类都实现了Shape接口,并重写了draw方法。在Main类中,定义了两个Shape类型的变量,一个指向Circle对象,另一个指向Square对象。在调用draw方法时,由于这两个对象都实现了Shape接口,并且都重写了draw方法,所以程序能够根据对象的实际类型来选择对应的方法,实现了多态的效果。

  
  

评论区

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