继承
如果多个类之间存在共同的属性,可以创建一个父类,将这些属性定义在父类中,然后让这些类继承该父类,从而避免在每个类中重复定义属性。
public class Person {
protected String name; // 共同的属性
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Student extends Person {
private int grade; // 学生特有的属性
// 学生特有的方法
public void setGrade(int grade) {
this.grade = grade;
}
public int getGrade() {
return grade;
}
}
public class Teacher extends Person {
private String subject; // 教师特有的属性
// 教师特有的方法
public void setSubject(String subject) {
this.subject = subject;
}
public String getSubject() {
return subject;
}
}
在上述示例中,Person类定义了共同的属性name,而Student类和Teacher类分别继承了Person类,从而拥有了共同的属性。这样可以避免在Student和Teacher类中重复定义name属性。
接口
如果多个类存在相同的行为,可以使用接口来定义这些行为,然后让这些类实现该接口。接口中可以定义属性的访问方法
public interface Identifiable {
String getId(); // 声明获取ID的方法
}
public class Student implements Identifiable {
private String id; // 学生特有的属性
// 实现接口定义的方法
public String getId() {
return id;
}
}
public class Teacher implements Identifiable {
private String id; // 教师特有的属性
// 实现接口定义的方法
public String getId() {
return id;
}
}
在上述示例中,Identifiable接口定义了获取ID的方法,Student类和Teacher类都实现了该接口,并且实现了获取ID的方法。这样可以统一定义相同的行为,避免重复编写代码。
通过使用继承和接口,可以优化代码,避免重复定义相同的属性,提高代码的可维护性和重用性。同时,也能更好地符合面向对象的设计原则,提高代码的封装性和可扩展性。