public interface Animal{public int leg();} 能直接创建animal类吗
时间: 2024-03-13 14:43:32 浏览: 21
这段代码定义了一个 `Animal` 接口,并声明了一个抽象方法 `leg`,该方法返回一个整数类型。接口并不能直接创建对象,它只是一种规范或契约,规定了实现该接口的类应该具有哪些方法。因此,不能直接创建 `Animal` 类的对象。如果要使用 `Animal` 接口,需要定义一个实现了该接口的类,实现其 `leg` 方法,并创建该类的对象来使用。例如:
```java
public class Horse implements Animal {
@Override
public int leg() {
return 4;
}
}
```
这里定义了一个 `Horse` 类,该类实现了 `Animal` 接口,并实现了 `leg` 方法,返回值为 4,表示马有四条腿。可以通过以下代码创建 `Horse` 对象来使用:
```java
Animal horse = new Horse();
int legNum = horse.leg(); // legNum的值为4
```
在这里,我们将 `Horse` 类的对象赋值给 `Animal` 类型的变量 `horse`,因为 `Horse` 类实现了 `Animal` 接口,因此可以将其转换为 `Animal` 类型。然后,我们通过 `horse` 变量调用 `leg` 方法,得到了马的腿的数量。
相关问题
public Animal(int leg) 是什么格式
`public Animal(int leg)` 是Animal类的一个构造方法,它有一个整型参数 `leg`,用于初始化Animal对象的 `leg` 属性。构造方法的格式如下:
```java
修饰符 类名(参数列表) {
// 构造方法的代码
}
```
其中,`修饰符` 可以是 `public`、`protected`、`private` 或者省略不写(默认为包访问权限)。`类名` 必须与类名相同,表示这是一个构造方法。`参数列表` 是指构造方法的参数列表,可以有零个或多个参数。在构造方法的代码块中,我们可以执行一些初始化或者其他操作,以便创建对象时进行必要的设置。
为什么Animal类里有两个public
在Animal类中,有两个public修饰的方法:
1. 构造方法:public Animal(int leg)。这个构造方法是用来创建Animal对象的,因此它需要被public修饰,才能够在其他类中被调用。
2. sound()方法:public void sound()。这个方法是用来输出Animal的声音的,同样需要被public修饰,才能够在其他类中被调用。
总之,只有public修饰的方法才能在其他类中被访问和调用。如果你希望某个方法或属性只能在当前类中使用,可以将其修饰为private。如果你希望某个方法或属性只能在当前类及其子类中使用,可以将其修饰为protected。