2. interface中的方法是否可省略public和abstract关键字?
时间: 2024-05-07 13:20:53 浏览: 20
在接口中,所有的方法都是公共的(public)和抽象的(abstract),因此可以省略这些关键字。这是因为接口中的方法默认为公共的,并且没有方法体,只有方法的签名。因此,以下两种方式都是合法的接口定义方式:
```
public interface MyInterface {
public abstract void myMethod();
}
```
```
interface MyInterface {
void myMethod();
}
```
第二种方式更加简洁,并且是推荐的接口定义方式。
相关问题
接口中抽象方法的默认修饰符为什么和什么?
在 Java 中,接口中定义的抽象方法默认使用 `public abstract` 两个修饰符。这是因为接口中定义的抽象方法是被认为是公共方法,可以被接口的所有实现类和其他类使用,因此需要使用 `public` 修饰符。
同时,由于接口中定义的抽象方法没有方法体,是需要实现类来具体实现的,因此需要使用 `abstract` 修饰符。需要注意的是,接口中的抽象方法不能使用 `final` 或 `static` 修饰符,因为抽象方法必须被实现类具体实现。
需要注意的是,接口中定义的抽象方法可以省略 `public abstract` 这两个修饰符,因为它们是默认的修饰符。例如:
```
interface MyInterface {
void doSomething();
}
```
在实现该接口的类中,需要实现 `doSomething()` 方法,例如:
```
class MyClass implements MyInterface {
public void doSomething() {
// 具体实现
}
}
```
需要注意的是,虽然接口中定义的抽象方法可以省略 `public abstract` 修饰符,但是建议明确地指定这些修饰符,以提高代码的可读性和可维护性。
4-4 指出以下声明中的错误。 Protected interface Area { Public static int left; Public static final int RIGHT; Public Area() Private double area; Public static abstract double perimeter(); } New Area()
以下是声明中的错误:
1. 接口不能被声明为protected。因此,应该将`protected`改为`public`或`interface`。
2. 接口中的字段应该是常量,因此应该将`Public static int left`改为`public static final int left`。
3. `RIGHT`字段没有初始化,因此应该为其指定一个常量值或在构造函数中初始化。
4. 接口不能拥有构造函数,因此应该删除`Public Area()`构造函数。
5. `area`字段是私有的,因此无法在接口中访问。应该将其移动到实现该接口的类中。
6. 接口中的抽象方法不能是静态的,因此应该删除`static`关键字。
综上所述,修正后的声明应该如下所示:
```
public interface Area {
public static final int left = 0;
public static final int RIGHT = 1;
public abstract double perimeter();
}
```
注意,由于接口中的方法都是抽象的,因此不需要使用`abstract`关键字来修饰。此外,由于接口中的字段都是常量,因此可以省略`public static final`中的任何一个关键字。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)