详解JAVA中implement和extends的区别
在JAVA中,implement和extends是两个重要的关键字,它们用于实现接口和继承类,但是它们有着不同的特点和应用场景。
implement
implement用于实现一个接口,它必须在类中实现接口中定义的所有方法,并且可以实现多个接口,用","隔开。
示例1
public interface Shape {
double getArea();
double getPerimeter();
}
class Rectangle implements Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
public double getArea() {
return length * width;
}
public double getPerimeter() {
return 2 * (length + width);
}
}
在上面的示例中,定义了一个Shape接口,其中包含了getArea和getPerimeter两个方法。而在Rectangle类中实现了Shape接口,并对接口中的两个方法分别进行了实现。这样,任何一个调用Rectangle类的对象都可以使用getArea和getPerimeter方法。
示例2
public interface Printable {
void print();
}
public class Book implements Printable {
private String name;
private String author;
public Book(String name, String author) {
this.name = name;
this.author = author;
}
public void print() {
System.out.println("Book: " + name + ", Author: " + author);
}
}
public class Magazine implements Printable {
private String name;
private int issueNum;
public Magazine(String name, int issueNum) {
this.name = name;
this.issueNum = issueNum;
}
public void print() {
System.out.println("Magazine: " + name + ", Issue Number: " + issueNum);
}
}
在上面的示例中,定义了一个Printable接口,其中包含了print方法,而Book类和Magazine类都实现了Printable接口,并实现了print方法。这样,就可以通过调用Printable接口来输出Book类和Magazine类的信息。
extends
extends用于继承一个类,它可以继承一个类的属性和方法,并可以覆盖父类的方法,但只能继承一个类。
示例1
public class Animal {
protected String name;
public void eat() {
System.out.println("Animal " + name + " is eating.");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("Dog " + name + " is barking.");
}
public void eat() {
System.out.println("Dog " + name + " is eating dog food.");
}
}
在上面的示例中,定义了一个Animal类,其中包含了一个name属性和一个eat方法。而Dog类继承了Animal类,并实现了bark方法,同时覆盖了父类的eat方法。这样,Dog类既可以继承Animal类的属性和方法,又可以根据需要进行相应的修改和增加。
示例2
public class Employee {
protected String name;
protected double salary;
public Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
public double getSalary() {
return salary;
}
}
public class Manager extends Employee {
private String department;
public Manager(String name, double salary, String department) {
super(name, salary);
this.department = department;
}
}
在上面的示例中,定义了一个Employee类,其中包含了一个name属性和一个getSalary方法。而Manager类继承了Employee类,并增加了一个department属性和一个构造方法。通过super关键字调用父类的构造方法,初始化父类中的属性。这样,Manager类既可以继承Employee类的属性和方法,又可以增加自己特有的属性和方法。
总结
implement用于实现接口,必须实现所有的方法,并可以实现多个接口;extends用于继承类,可以继承一个类的属性和方法,并可以覆盖父类的方法,但只能继承一个类。实际应用中,根据具体情况选择使用implement或extends,可以让代码更加简洁优雅。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解JAVA中implement和extends的区别 - Python技术站