package forth; // class liu{} interface Drawable{ void draw(); } class Doctor implements Drawable{ public void draw() { System.out.println("Painting Cartoon"); } } class Painter implements Drawable{ //instance variables - replace the example below with your own public void draw() { System.out.println("Draw Mountain Scence"); } } public class five{ public static void main(String[] args) { Doctor _d = new Doctor(); Painter _p = new Painter(); DPdraw(_d); DPdraw(_p); } public static void DPdraw(Drawable _dI) { _dI.draw(); } }简单解释一下
时间: 2024-02-23 19:57:24 浏览: 63
这段代码定义了一个接口Drawable,该接口中只有一个抽象方法draw()。然后定义了两个类Doctor和Painter,它们都实现了Drawable接口,因此都必须实现draw()方法。在main函数中,分别创建了一个Doctor对象和一个Painter对象,并分别传入DPdraw()方法中进行调用。DPdraw()方法的参数是一个Drawable类型的接口,因此可以接受实现了Drawable接口的任何类的对象,并调用其draw()方法。最终输出结果是调用Doctor对象的draw()方法,输出"Painting Cartoon",调用Painter对象的draw()方法,输出"Draw Mountain Scence"。
相关问题
public abstract class Shape { public abstract double getArea();}public interface Drawable { void draw();}public class Rectangle extends Shape implements Drawable { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } @Override public void draw() { System.out.println("Drawing a rectangle."); }}
这段代码展示了一个抽象类 Shape 和一个接口 Drawable,以及一个实现了 Shape 和 Drawable 的具体类 Rectangle。Shape 类是一个抽象类,其中定义了一个抽象方法 getArea(),这个方法没有实现,需要在子类中具体实现。Drawable 接口中定义了一个方法 draw(),任何实现了 Drawable 接口的类都必须实现 draw() 方法。Rectangle 类继承自 Shape 并实现了 Drawable 接口,它有一个构造方法,可以创建一个指定宽度和高度的矩形。在 Rectangle 类中,实现了 Shape 中的抽象方法 getArea() 和 Drawable 中的方法 draw(),getArea() 方法计算矩形的面积,draw() 方法打印出 "Drawing a rectangle."。这个例子展示了面向对象的多态特性,通过抽象类和接口,我们可以定义出一些通用的方法和属性,并让具体的类来实现这些方法和属性,从而实现代码的灵活性和复用性。
阅读全文