📅  最后修改于: 2023-12-03 15:11:41.748000             🧑  作者: Mango
继承是面向对象编程中的一个重要概念。它是指创建一个新的类,从一个或多个现有类中继承属性和方法,从而实现代码的复用和简化。
在面向对象编程中,继承可以通过两种方式实现:类继承和接口继承。
类继承是将一个类作为基类,新建一个派生类,并将基类的属性和方法传递给派生类,使它具有基类的特性。派生类可以进一步添加属性和方法以满足自身需求。
在Java中,类继承使用关键字extends来实现,如下所示:
class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
class Student extends Person {
private int score;
public void setScore(int score) {
this.score = score;
}
public int getScore() {
return this.score;
}
}
public class Main {
public static void main(String args[]) {
Student student = new Student();
student.setName("张三");
student.setAge(18);
student.setScore(100);
System.out.println(student.getName() + ",年龄:" + student.getAge() + ",成绩:" + student.getScore());
}
}
在上面的例子中,我们定义了Person类作为基类,它有name和age两个属性和对应的get、set方法。另外,我们定义了一个Student类作为派生类,它从Person类继承过来name和age两个属性和对应的get、set方法,并添加了score属性和对应的get、set方法。
接口继承是将一个接口作为基础,从中派生出新接口,并向其中添加新的方法或属性。
在Java中,接口继承使用关键字extends来实现,如下所示:
interface IPerson {
void setName(String name);
String getName();
}
interface IStudent extends IPerson {
void setScore(int score);
int getScore();
}
class Student implements IStudent {
private String name;
private int score;
public void setName(String name) {
this.name = name;
}
public void setScore(int score) {
this.score = score;
}
public String getName() {
return this.name;
}
public int getScore() {
return this.score;
}
}
public class Main {
public static void main(String args[]) {
Student student = new Student();
student.setName("张三");
student.setScore(100);
System.out.println(student.getName() + ",成绩:" + student.getScore());
}
}
在这里,我们定义了IPerson接口作为基接口,它有一个方法setName和一个方法getName。另外,我们定义了IStudent接口作为派生接口,它继承了IPerson接口,并添加了一个方法setScore和一个方法getScore。
继承时,Student类实现了IStudent接口,并继承了IPerson接口中的setName和getName方法,同时也实现了IStudent接口中的setScore和getScore方法。