1.修饰类,不能创建(new)对象. 但可用来声明引用(编译不报错). 抽象类是专门用来被继承的.它是一个类的半成品,抽象类往往和多态结合. 因为一个类没有对象所以将它写为抽象类. 2.一个接口就是一个特殊的抽象类. 全都是抽象方法的抽象类. abstract class classA{ public static final int A=10; public abstract void m1(); public abstract void m2(); } interface IA{ int A=10; void m1(); void m2(); } 接口中的属性默认是公开静态常量. 接口中的方法默认是公开抽象方法. 接口没有构造方法.
但可用来声明引用(编译不报错).
抽象类是专门用来被继承的.它是一个类的半成品,抽象类往往和多态结合.
因为一个类没有对象所以将它写为抽象类.
2.一个接口就是一个特殊的抽象类.
全都是抽象方法的抽象类.
abstract class classA{
public static final int A=10;
public abstract void m1();
public abstract void m2();
}
interface IA{
int A=10;
void m1();
void m2();
}
接口中的属性默认是公开静态常量.
接口中的方法默认是公开抽象方法.
接口没有构造方法.
些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类
的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实
现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在
类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这
样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义
static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当
类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现
了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变
量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运
算符可以用来决定某对象的类是否实现了接口。
说的好,让我茅舍顿开啊
:0 面向对象思想---最关键是抽象。
java接口和java抽象类代表就是抽象类型,就需要提出抽象层的具体表现。OOP面向对象的编程,目的提高程序复用效率,可扩展性,可维护性,引出必须是面向接口的编程,面向抽象的编程,正确的使用接口和抽象类这些有用的抽象类型作物结构层次的顶层。
首先明白抽象类是用来继承其内部方法,接口是用来把其内部方法补充实现
比较如下:
共同处:
1.接口和抽象类均不能被实例化;
2.接口和抽象类中的抽象方法都必须在子类中被实现。 区别处:
1.接口本身属于特殊的抽象类,接口中的方法都必须是抽象的,而抽象类中可以有普通方法;
2.JAVA接口可以实现多重继承,而抽象类只能实现单一继承(java类均单一继承原则)。联系:
java接口和抽象类各有优势,经典设计模式中,声明类型工作接口承担,但同时给出一个java抽象类,且实现这个接口,
而其它同属的具体类可以选择实现这个接口,可以继承这个抽象类,层次结构上,java接口在最顶上,然后紧跟抽象类,
发挥它们彼次所长。