package work;
//定义一个Shape接口,接口中含有一个抽象方法,此抽象方法接收一个double类型的参数
interface Shape
{
double area(double x);
}
//定义一个Square类,实现Shape接口
class Square implements Shape
{
double area(double x)
{
double a=x*x;
return a;
System.out.println("正方形的面积为 "+a);
}
}
//定义一个Circle类,实现Shape接口
class Circle implements Shape
{
double area(double x)
{
double a=3.14*x*x;
return a;
System.out.println("圆的面积为 "+a);
}
}
public class Test02 {
public static void main(String[] args)
{
// TODO Auto-generated method stub
Square square=new Square();
square.area(2.00);
Circle circle=new Circle();
circle.area(3.00);
}
}
运行报错提示:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot reduce the visibility of the inherited method from Shape
at work.Square.area(Test02.java:12)
at work.Test02.main(Test02.java:37)
每个方法会在 return 执行后结束,你把打印语句写在在了 return 后面,所以编译器认为 return 后面的语句都是无效的
package work;
//定义一个Shape接口,接口中含有一个抽象方法,此抽象方法接收一个double类型的参数
interface Shape {
double area(double x);
}
//定义一个Square类,实现Shape接口
class Square implements Shape {
public double area(double x) {
double a = x * x;
System.out.println("正方形的面积为 " + a);
return a;
}
}
//定义一个Circle类,实现Shape接口
class Circle implements Shape {
public double area(double x) {
double a = 3.14 * x * x;
System.out.println("圆的面积为 " + a);
return a;
}
}
public class Test02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Square square = new Square();
square.area(2.00);
Circle circle = new Circle();
circle.area(3.00);
}
}
正方形的面积为 4.0
圆的面积为 28.259999999999998
// return 代表的是一个方法执行的结束,如果有返回参数的话,它还能返回参数。
// 我给你举个例子
// 1. 如果是没有返回值的方法的话,是不需要 return 的
public void test() {
System.out.println("fdsf");
}
// 2. 如果没有返回值,也是可以使用 return 的
public void test(int a) {
System.out.println("1");
if (a == 1) {
// 注意,这里 return 后面没有参数,直接以引号结束的
// 如果执行了 return,后面的代码就不会执行了
// 这种写法在编程中称为自卫式写法
return;
}
System.out.println("2");
System.out.println("3");
}
// 这种写法也是可以的,如果 if 中的代码过长或者还有嵌套的话,看上去就不好了
public void test(int a) {
System.out.println("1");
if (a != 1 ) {
System.out.println("2");
System.out.println("3");
}
}
// 3. 如果是有返回值,则必须有 return ,并且 return 后面要带上对应类型的参数
public int test() {
System.out.println("fdsf");
return 1;
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632