21xrx.com
2024-11-22 07:54:17 Friday
登录
文章检索 我的文章 写文章
Java编程语言中的复用方法
2023-06-17 02:39:16 深夜i     --     --
Java 复用 继承 组合 接口

Java编程语言是一种面向对象的编程语言,它提供了多种不同的方式来实现代码的复用。在本文中,我们将介绍Java中的复用方法,并演示如何在实践中使用它们。

方法1:继承

Java中,我们可以使用继承来实现代码的复用。继承允许我们定义一个新的类来扩展原有的类,并重用原有类的属性和方法。以下是一个继承示例代码:


class Animal {

 public void eat() {

  System.out.println("Animal is eating.");

 }

}

class Dog extends Animal {

 public void bark() {

  System.out.println("Dog is barking.");

 }

}

public class Main {

 public static void main(String[] args) {

  Dog myDog = new Dog();

  myDog.eat(); // 继承自Animal类

  myDog.bark();

 }

}

在上述代码中,我们定义了一个Animal类和一个Dog类。Dog类继承Animal类,因此它也拥有Animal类的属性和方法,其中包括eat()方法。在main()方法中,我们创建了一个Dog类的实例myDog,并分别调用了它的eat()和bark()方法。结果如下:


Animal is eating.

Dog is barking.

方法2:组合

Java中,我们可以使用组合来实现代码的复用。组合允许我们在一个类中定义另一个类的实例,并在该类中重用该实例的属性和方法。以下是一个组合示例代码:


// 省略之前的Animal和Dog类定义

class Person {

 private Animal myPet;

 public Person(Animal pet)

  myPet = pet;

 

 public void feedPet() {

  myPet.eat();

 }

}

public class Main {

 public static void main(String[] args) {

  Dog myDog = new Dog();

  Person me = new Person(myDog);

  me.feedPet();

 }

}

在上述代码中,我们定义了一个Person类,它包含一个Animal的实例变量myPet。Person类中还定义了一个feedPet()方法,它通过调用myPet的eat()方法来喂养myPet。在main()方法中,我们创建了一个Dog类的实例myDog,并将它作为参数传递给Person类的构造函数。我们还创建了一个Person类的实例me,并调用了它的feedPet()方法。结果如下:


Animal is eating.

方法3:接口

Java中,我们可以使用接口来实现代码的复用。接口允许我们定义一组规范,所有实现该接口的类都必须实现这些规范。以下是一个接口示例代码:


interface IAnimal {

 void eat();

}

class Dog implements IAnimal {

 public void eat() {

  System.out.println("Dog is eating.");

 }

 public void bark() {

  System.out.println("Dog is barking.");

 }

}

public class Main {

 public static void main(String[] args) {

  IAnimal myDog = new Dog();

  myDog.eat();

  // myDog.bark(); 无法访问

  Dog myAnotherDog = new Dog();

  myAnotherDog.eat();

  myAnotherDog.bark();

 }

}

在上述代码中,我们定义了一个IAnimal接口,它有一个eat()方法。我们还定义了一个Dog类,它实现了IAnimal接口。在main()方法中,我们创建了一个Dog类的实例myDog,并将它当做IAnimal类型的对象使用。在这种情况下,我们只能访问内部实现IAnimal接口的方法,也就是eat()方法。我们还创建了另一个Dog类的实例myAnotherDog,并直接调用了它的方法。结果如下:


Dog is eating.

Dog is barking.

  
  

评论区

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