45、(1分)在Java中,哪个关键字用于指定一个方法在父类中是抽象的? A、private B、public OC、protected OD、abstract
时间: 2023-12-22 20:02:17 浏览: 53
OD、abstract。在Java中,使用abstract关键字可以指定一个方法在父类中是抽象的,也就是只有方法签名而没有具体的实现。一个类如果包含抽象方法,那么这个类必须是抽象类。抽象类不能被实例化,但是可以被继承,子类必须实现抽象类中的所有抽象方法。private、public和protected关键字都用于指定方法的访问修饰符,不与abstract关键字相关。
相关问题
java中的抽象类里面的非抽象方法有this关键字,指的是?
在 Java 抽象类中的非抽象方法中使用 this 关键字,表示当前对象的引用。抽象类中的非抽象方法可以包含具体的实现,因此可以使用 this 关键字来访问当前对象的属性或调用当前对象的方法。
例如,假设有一个抽象类 Animal,它有一个非抽象方法 eat(),实现如下:
```java
public abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating...");
}
}
```
在这个例子中,eat() 方法使用了 this.name 来访问当前对象的 name 属性。这里的 this 关键字表示当前对象的引用。
当具体的子类实现了抽象类中的抽象方法时,也可以在非抽象方法中使用 this 关键字来访问当前对象的属性或调用当前对象的方法。例如,假设有一个具体的子类 Cat,它继承了 Animal 类并实现了 eat() 方法,实现如下:
```java
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void eat() {
super.eat();
this.play();
}
public void play() {
System.out.println(getName() + " is playing...");
}
}
```
在这个例子中,Cat 类继承了 Animal 类并覆盖了 eat() 方法,使用了 super.eat() 来调用父类的 eat() 方法,使用了 this.play() 来调用当前对象的 play() 方法。这里的 this 关键字也表示当前对象的引用。
java 抽象类,子类调用抽象父类的公用方法
Java中的抽象类是一种不能被实例化的类,只能被继承的类。抽象类中可以包含抽象方法和普通方法,抽象方法是没有具体实现的方法,需要子类来实现,而普通方法则有具体的实现。
当子类继承抽象父类时,可以调用父类的公用方法。这是因为抽象类的公用方法在抽象类中已经有了具体的实现,子类可以直接调用这些方法来完成相应的功能。子类可以通过创建对象来调用这些公用方法,也可以通过super关键字来调用父类的方法。
在子类中调用抽象父类的公用方法有几个注意事项。首先,子类必须实现所有抽象方法,否则会导致编译错误。因为抽象方法没有具体的实现,在子类中必须重写这些方法来提供具体的实现。其次,父类的公用方法必须是public或protected类型的,才能在子类中被调用。如果父类的方法是private类型的,子类是无法访问的。最后,子类在调用父类的公用方法时,可以根据需要对方法进行重写,以实现特定的功能。
总而言之,子类可以调用抽象父类的公用方法,但需要注意实现所有的抽象方法,并且确保父类的公用方法可访问。这样可以通过子类来使用抽象父类中已有的功能,并且可以在子类中对方法进行重写,以满足特定需求。