java中的抽象类和接口有什么区别?

时间:2015-11-01 22:33:52

标签: java user-interface abstract-class

我是java新手,无法理解这些基本概念。我用谷歌搜索了这个但是找不到很好的解释,所以希望你们中的一个可以帮助我。谢谢。我的问题是......

什么是抽象类?

您何时使用抽象类?何时使用接口?

2 个答案:

答案 0 :(得分:0)

Object B IS Object A时,抽象方法用于继承。 Object B HAS Object A时使用接口。例如,宝马是CAR,但CAR不是发动机,CAR有发动机。但除此之外,它们之间只有很少的技术细微差别。这里的逻辑是最重要的。

编辑:由于受欢迎的需求,这是我的例子:

interface Engine {
horsePower(int a);
torque(int a);
volume(int a);
//...
}

汽车

abstract class Car implements Engine {
//implement interface methods
public abstract accelerate(int howMuch, int horsePower);
public abstract brake(int howMuch);
public abstract turn(int degreesOfRotation);
//..
}

宝马

public class BMW extends Car {    
private final String carMake = "BMW";
private String carModel;
// implement abstract methods of Car
public void setModel(String s){
carModel = s;
//and so on
}

答案 1 :(得分:0)

主要有两种类型 1.混凝土类 抽象课程 具体类是声明和定义所有方法的类,即简单地说,每个方法都知道它必须做什么以及如何做到这一点 当谈到简单的抽象类时,这些是不完整的类,即它们具有知道该做什么的方法但是它们不知道如何完成它。这种方法被称为抽象方法和具有一个或多个抽象的类方法称为抽象类 重要的是要注意,不能实例化抽象类的对象,并且继承Ab抽象类的类必须定义所有抽象方法,以便它本身成为具体类并且可以实例化 另一方面接口是抽象方法和静态最终变量的集合,接口的主要用途之一是克服多重继承的问题(java中的一个类只能扩展一个类,但可以实现任意数量的接口)