为什么在JDK17为运行环境下的Idea里,使用接口的Cylinder类必须要抽象化呢?可一旦Cylinder抽象后后面的类方法调用里有个new,直接就废了。这个是课本上的源代码,课本使用的是JDK18。
```java
import java.text.DecimalFormat;
interface Face1{
static final double PI=3.14;
abstract double area();
}
interface Face2{
abstract void setColor(String c);
}
interface Face3 extends Face1,Face2{
abstract void volume();
}
public class Cylinder implements Face3 {
private double radius;
private int height;
protected String color;
DecimalFormat df=new DecimalFormat("0.00");
public Cylinder(double r,int h){
radius=r;
height=h;
}
public double area()
{
return PI*radius*radius;
}
public void setclolor(String c){
color=c;
System.out.println("颜色:"+color);
}
public void volume(){
System.out.println("圆柱体体积="+df.format(area()*height));
}
public class App8_13 {
public static void main(String[] args)
{
Cylinder volu=new Cylinder(3.0,2);
volu.setColor("红色");
volu.volume();
System.out.println("Hello world!");
}
}
}
```