/**==============================
* 定义内部接口
*
*
**==============================*/
abstract class A{
public abstract void printA();
interface B{
public void printB();
}
};
class X extends A{
public void printA(){
System.out.println("X......printA()");
}
class Y implements B{
public void printB(){
System.out.println("X.Y====printB()");
}
}
};
public class InnerDemo8 {
public static void main(String[] args){
A x=new X();
x.printA();
//内部类接口调用,向上转型
A.B y1=new X().new Y();
y1.printB();
}
}
java接口在内部抽象类..........
/**==============================
* 定义内部抽象类
*
*
**==============================*/
interface A{
public abstract void printA();
abstract class B{
public abstract void printB();//需要关键字声明
}
};
class X implements A{
public void printA(){
System.out.println("X......printA()");
}
class Y extends B{
public void printB(){
System.out.println("X.Y====printB()");
}
}
};
public class InnerDemo8 {
public static void main(String[] args){
A x=new X();
x.printA();
//内部类接口调用,向上转型
A.B y1=new X().new Y();
y1.printB();
}
}
总结:接口和抽象的实现几乎是一样的,但是,从个人的开发角度来看,这种设计并不是很常见。这样做代码的结构看起来比较混乱。
接口与抽线类的区别:
|
NO |
区别 |
抽象类 |
接口 |
|
1 |
定义 |
包含一个抽象的方法的类 |
抽象方法和全局常量的集合。 |
|
2 |
组合 |
构造方法、抽象方法、普通方法、常量、变量 |
常量、抽象方法 |
|
3 |
使用 |
子类继承抽象类(extends) |
子类接口的实现(Implements) |
|
4 |
关系 |
抽象类可以实现多个接口 |
接口不能继承抽象类,但允许继承多个接口 |
|
5 |
常见设计模式 |
模版设计 |
工厂设计、代理设计 |
|
6 |
对象 |
都通过对象的多态性来产生实例化对象; | |
|
7 |
局限 |
抽象类有单继承的局限 |
接口没这局限 |
|
8 |
实际 |
作为一个模版 |
是一个标准或表示一种能力 |
|
9 |
选择 |
优先使用接口,避免单继承的局限性 | |
|
10 |
特殊 |
一个抽象,类可以包含多个接口,一个接口中可以包含多个抽象类。 | |
本文对比了Java中抽象类与接口的区别,包括定义、组成、使用方式等,并通过示例代码展示了两种类型的实际应用。
423

被折叠的 条评论
为什么被折叠?



