抽象类中可以存在非抽象的方法 VS 接口中的方法被默认的变成抽象方法,只要是定义了接口,接口中的方法 就全部变成了抽象类即使你不写 abstract 它也是抽象的方法
实现抽象类的方法时, 如果方法是抽象的,子类必须重写抽象的方法. 如果方法不是抽象的, 子类可以选择继承 VS 实现了接口,就必须实现接口中的所有方法, 因为接口中的方法默认的全部都是抽象的方法 (可以说, 接口是抽象类的一种, 也可以说接口是抽象类的延伸)
抽象类可以有私有的成员变量和成员法 VS 接口中的方法全都被默认的修饰为: public abstract 类型的方法
一个类只能继承一个抽象类 VS 一个类可以实现多个接口 ,接口可以实现多继承 举例:interface display extends aa ,bb,cc ...等等 然后让类去实现 display的接口 就可以实现 display aa bb cc接口
抽象类使用关键字abstract class修饰,接口使用关键字interface;
抽象类使用关键字extends实现继承,接口使用implements来实现
抽象类中可以包含抽象方法和普通方法,接口中只能有抽象方法(1.7);
抽象类可以有构造方法,接口中不能有构造方法;
抽象类可以有成员变量,接口中只能有常量;
抽象类只能单继承,接口可以多继承;
抽象类里面的方法可以是public,protect,private,接口的方法只能是public
例
在java中impliment是为了实现某个接口.
例如接口a:
interface a{
public void a();
}
有b类为了实现a接口
class b impliment a{
public void a(){
system.out.println("b");
}
}
接口:
interface Animal{
public void run();
}
interface Flyer{
public void fly();
}
interface Swimmer{
public void swim();
}
interface Robbit{
public void Haha();
}
实现
public class LaoXue implements Animal,Swimmer,Robbit{
public void run(){
}
public void swim(){
}
public void Haha(){
}
}