📜  是java中的关系(1)

📅  最后修改于: 2023-12-03 15:10:29.698000             🧑  作者: Mango

Java中的关系

在Java中,关系是通过类之间的继承和实现接口来建立的。这种关系可以通过UML图来表示,在UML中,继承关系使用空心三角形和实现接口的关系使用空心箭头表示。

继承关系

继承是一种面向对象编程中的基本概念,它允许创建新的类,从现有的类中继承属性和方法,并添加新的功能。

在Java中,继承关系可以用extends关键字实现。例如,如果我们有一个名为Animal的类,我们可以使用以下代码来创建一个名为Dog的类,这个类继承了Animal类的属性和方法:

public class Animal {
    public void eat() {
        System.out.println("Animal is eating");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("Dog is barking");
    }
}

在这个例子中,Dog类是Animal类的子类,它继承了Animal类的eat()方法。在Dog类中,我们添加了一个新的bark()方法。

实现接口

接口是一组方法的集合,没有实现的方法。在Java中,一个类可以实现一个或多个接口。一个类实现接口时,它必须实现接口中所有未实现的方法。实现接口可以使类更加灵活,因为它可以同时实现多个接口,从而获得不同的功能。

在Java中,实现接口可以用implements关键字实现。例如,如果我们有一个名为Flyable的接口,它有一个fly()方法,我们可以使用以下代码来创建一个名为Bird的类,这个类实现了Flyable接口:

public interface Flyable {
    public void fly();
}

public class Bird implements Flyable {
    public void fly() {
        System.out.println("Bird is flying");
    }
}

在这个例子中,Bird类实现了Flyable接口,并实现了接口中的fly()方法。

多态性

继承和实现接口是Java实现多态性的关键。多态性是指同一种类型的对象,由于继承或实现了不同的接口,可以表现出不同的行为。这是一种非常强大的特性,使得Java程序更加灵活和易于扩展。

在Java中,多态性可以通过以下方式实现:

  • 父类引用指向子类对象
  • 接口引用指向实现类对象

例如,如果我们有一个名为Animal的类和一个名为Flyable的接口,我们可以使用以下代码来实现多态性:

public interface Flyable {
    public void fly();
}

public class Animal {
    public void move() {
        System.out.println("Animal is moving");
    }
}

public class Bird extends Animal implements Flyable {
    public void fly() {
        System.out.println("Bird is flying");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Bird();
        animal.move();
        
        Flyable flyable = new Bird();
        flyable.fly();
    }
}

在这个例子中,我们创建了一个Animal类和一个Flyable接口。我们还创建了一个Bird类,它继承自Animal类,并实现了Flyable接口。在Main类中,我们创建了一个Animal类型的对象,它引用了Bird类的实例。这个对象调用了move()方法,因为它是Animal类型的,所以只能调用Animal类中定义的方法。然而,由于它引用了Bird类的实例,因此在调用move()方法时,它实际上调用了Bird类中的move()方法。同样,我们还创建了一个Flyable类型的对象,它引用了Bird类的实例。这个对象调用了fly()方法,因为它是Flyable类型的,所以只能调用Flyable接口中定义的方法。由于Bird类实现了Flyable接口,因此可以调用它的fly()方法。

总结

Java中的类之间的关系可分为继承和实现接口两种方式。继承关系使用extends关键字实现,而实现接口关系使用implements关键字实现。通过继承和实现接口,Java实现了多态性的特性。多态性使得程序更加灵活,易于扩展。