Java 创建具有不同引用类型和实例类型的对象
如何改进计划的实施?当以引用类型作为接口,实例类型作为实现类进行测试时,程序失败。集中精力创建具有不同引用类型和实例类型的对象Java 创建具有不同引用类型和实例类型的对象,java,interface,Java,Interface,如何改进计划的实施?当以引用类型作为接口,实例类型作为实现类进行测试时,程序失败。集中精力创建具有不同引用类型和实例类型的对象 package com; interface Shape { public abstract double getArea(double d); } public class TestCircle { public static void main(String[] args) { Circle s = new Circle(); System.out
package com;
interface Shape {
public abstract double getArea(double d);
}
public class TestCircle {
public static void main(String[] args) {
Circle s = new Circle();
System.out.println(s.getArea(5));
System.out.println(calculateArea(s,5));
Shape s1 = new Square();
System.out.println(calculateArea(s1,5));
}
public static double calculateArea(Shape s, double d){
if(s==null) return 0.0;
return s.getArea(d);
}
}
class Circle implements Shape{
public double getArea(double d){
if(d<0) return 0.0;
return d*d*(22.0/7);
}
}
class Square implements Shape{
public double getArea(double d){
//if(d<0) return 0.0;
return d*d;
}
}
package-com;
界面形状{
公共抽象双区域(双d);
}
公共类测试圈{
公共静态void main(字符串[]args){
圆s=新圆();
系统输出打印LN(s.getArea(5));
系统输出打印项数(计算项数(s,5));
形状s1=新正方形();
系统输出println(calculateArea(s1,5));
}
公共静态双计算器ea(形状s,双d){
如果(s==null)返回0.0;
返回s.getArea(d);
}
}
类圆形实现形状{
公共双通道区域(双d){
如果(d对代码进行了一点重新分解,请详细说明您试图实现的目标。您可能不需要静态calculateArea()
package-com;
界面形状{
公共双通道区域(双d);
}
公共类测试圈{
公共静态void main(字符串[]args){
形状s=新圆();
系统输出打印LN(s.getArea(5d));
系统输出打印LN(calculateArea(s,5d));
形状s1=新正方形();
系统输出println(calculateArea(s1,5d));
}
公共静态双计算器ea(形状s,双d){
如果(s==null)返回0d;
返回s.getArea(d);
}
}
类圆形实现形状{
公共双通道区域(双d){
如果(dIn)程序以什么方式失败了?“程序失败了”?失败的原因是什么?可能是您想要的:final Shape s=new Circle();
“创建具有不同引用类型和实例类型的对象”是胡言乱语。它应该是“使用给定类型声明变量,并使用子类型的实例初始化它”。(我意识到你只是抄袭和粘贴了你的作业,所以这不是你的错,但仍然…)我是唯一一个不能解密这个问题的人吗?…:程序运行顺利,但我想知道我是否可以改进程序
package com;
interface Shape {
public double getArea(double d);
}
public class TestCircle {
public static void main(String[] args) {
Shape s = new Circle();
System.out.println(s.getArea(5d));
System.out.println(calculateArea(s,5d));
Shape s1 = new Square();
System.out.println(calculateArea(s1,5d));
}
public static double calculateArea(Shape s, double d){
if(s==null) return 0d;
return s.getArea(d);
}
}
class Circle implements Shape{
public double getArea(double d){
if(d<0) return 0d;
return d*d*(22.0/7);
}
}
class Square implements Shape{
public double getArea(double d){
//if(d<0) return 0.0;
return d*d;
}
}