Java抽象类、继承及多态和适配器是面向对象编程中的重要概念,可以优化代码的复用性和可读性。在Java中,抽象类是一个不能被实例化的类,它只能用作父类,用于声明抽象方法。子类继承抽象类后必须要实现父类中的所有抽象方法才能被实例化。继承是指一个类可以继承另一个类的属性和方法,多态是指一个对象可以在不同的情况下表现出不同的形态,实现适配器则是将一个类的接口转换成客户端希望的另一个接口。以下是实现这些概念的详细攻略:
Java抽象类
- 声明抽象类
要声明抽象类,需要使用关键字 abstract。例如:
public abstract class Animal {
// 抽象方法
public abstract void eat();
// 普通方法
public void sleep() {
System.out.println("Animal is sleeping.");
}
}
- 继承抽象类
要继承抽象类,需要创建一个子类,并实现抽象方法。例如:
public class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating.");
}
}
继承
- 创建父类和子类
创建一个Person类作为父类,然后创建Student类作为Person的子类。例如:
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Student extends Person {
private int grade;
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
- 实例化子类
实例化子类时,可以通过访问子类和父类共有的方法来访问父类中的属性。例如:
Student student = new Student();
student.setName("Tom");
student.setGrade(5);
System.out.println(student.getName() + " is in grade " + student.getGrade());
多态
- 创建多个子类
创建几个类作为子类,它们都继承自同一个父类。例如:
public class Shape {
public void draw() {
System.out.println("Draw shape");
}
}
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("Draw Circle");
}
}
public class Square extends Shape {
@Override
public void draw() {
System.out.println("Draw Square");
}
}
- 实现多态
通过将子类实例化到父类对象中,就可以实现多态。例如:
Shape[] shapes = new Shape[3];
shapes[0] = new Circle();
shapes[1] = new Square();
shapes[2] = new Shape();
for (Shape sh : shapes) {
sh.draw();
}
适配器
- 创建目标接口
创建一个接口,声明需要的一些方法。例如:
public interface Target {
public void request();
}
- 创建适配器类
创建一个适配器类,实现目标接口并继承需要被适配的类或接口,将目标接口方法转换成需要被适配的方法。例如:
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
public class Adaptee {
public void specificRequest() {
System.out.println("This is specific request.");
}
}
- 实现适配器
实例化适配器,用目标接口调用适配器的方法。例如:
Target target = new Adapter(new Adaptee());
target.request();
以上是Java抽象类、继承及多态和适配器的实现代码的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java抽象类、继承及多态和适配器的实现代码 - Python技术站