我正在做练习,这本书并没有帮助我掌握这个概念,也没有在线资源。这可能看起来很傻但我不知道我错过了什么!我是Java的新手并且已经看过堆栈上的其他示例但无济于事:我需要声明3个接口。每个接口都需要声明一个与其接口名称相同的方法。然后抽象类由3个类扩展,这些类实现上述接口。每个类都需要实例化。如果有人能解释这个程序,我会永远感激。
interface antiLockBrakes{
public void antiLockBrakes();
}
interface cruiseControl{
public void cruiseControl();
}
interface powerSteering{
public void powerSteering();
}
public abstract class Auto{
abstract class Model1 extends Auto implements antiLockBrakes{
public abstract void antiLockBrakes();
Model1 mod1 = new Model1();
mod1.antiLockBrakes();
}
public static void main(String[] args){
}
}
答案 0 :(得分:1)
这是你的问题:有人解释如何准确地声明和界面,然后在抽象类中实现它吧?
以下是答案。
请参阅我们考虑我有一个界面
interface someInterface{
public void someMethod();
}
现在在抽象类
中实现 someInterfacepublic abstract class SomeClass implements someInterface{
public void someMethod(){
System.out.println("Inside someMethod");
}
public abstract myMethod();
}
在类 SomeClass 中看到我们通过给方法 someMethod()定义来实现接口,因为我们希望这个SomeClass是一个抽象类,我们定义了一个抽象方法 myMethod()。
现在从SomeClass扩展的任何类都将隐式实现接口someInterface(因为SomeClass已经实现了它),如果它想要someMethod()的自己的定义,它可以覆盖它。但是如果一个子类想要成为一个具体的类(一个所有方法都将具有实现的类),那么它必须为抽象方法myMethod()提供实现。
HTH:)
答案 1 :(得分:0)
这是我喜欢用来看抽象类和接口类之间的区别
接口类
//I say all motor vehicles should look like that :
interface MotorVehicle {
void run();
int getFuel();
}
// my team mate complies and write vehicle looking that way
class Car implements MotorVehicle {
int fuel;
public void run() {
System.out.println("Wrroooooooom");
}
public int getFuel() {
return this.fuel;
}
}
抽象类
// I say all motor vehicles should look like that :
abstract class MotorVehicle2 {
int fuel;
// they ALL have fuel, so why let others implement that ?
// let's make it for everybody
int getFuel() {
return this.fuel;
}
// that can be very different, force them to provide their
// implementation
abstract void run();
}
// my team mate complies and write vehicle looking that way
class Car2 extends MotorVehicle2 {
void run() {
System.out.println("Wrroooooooom");
}
}