抽象方法与接口

15 篇文章 0 订阅

抽象类不能实例化,而且必须被子类继承,子类需要实现所有的方法。

 

接口是一个特殊的类,由抽象方法和全局常量组成(public static final)

 

适配器设计模式

interface Window{

         public void open() ;  // 打开窗口

         public void close() ;  // 关闭窗口

         public void icon() ;    // 最小化

         public void unicon() ;         // 最大化

}

abstract class WindowAdapter implements Window{                                                   

         public void open(){}

         public void close(){}

         public void icon(){}

         public void unicon(){}

};

class MyWindow extends WindowAdapter{

         public void open(){

                   System.out.println("打开窗口!") ;

         }

};

public class AdpaterDemo{

         public static void main(String args[]){

                   Window win = new MyWindow() ;

                   win.open() ;

         }

}

 

工厂设计模式:

interface Fruit{

         public void eat() ;

}

class Apple implements Fruit{

         public void eat(){

                   System.out.println("吃苹果。。。") ;

         }

};

class Orange implements Fruit{

         public void eat(){

                   System.out.println("吃橘子。。。") ;

         }

};

class Factory{  // 工厂类

         public static Fruit getFruit(String className){                                                  

                   Fruit f = null ;

                   if("apple".equals(className)){

                            f = new Apple() ;

                   }

                   if("orange".equals(className)){

                            f = new Orange() ;

                   }

                   return f ;

         }

};

public class InterDemo{

         public static void main(String args[]){

                   Fruit f = Factory.getFruit(args[0]) ;

                   if(f!=null){

                            f.eat() ;

                   }

         }

}


代理设计模式:

interface Window{

         public void open() ;  // 打开窗口

         public void close() ;  // 关闭窗口

         public void icon() ;    // 最小化

         public void unicon() ;         // 最大化

}

abstract class WindowAdapter implements Window{                                                    

         public void open(){}

         public void close(){}

         public void icon(){}

         public void unicon(){}

};

class MyWindow extends WindowAdapter{

         public void open(){

                   System.out.println("打开窗口!") ;

         }

};

public class AdpaterDemo{

         public static void main(String args[]){

                   Window win = new MyWindow() ;

                   win.open() ;

         }

}

 

抽象类与接口的比较:(重点)

比较点

抽象类

接口

组成

抽象方法、普通方法、常量、变量、构造器、全局变量

抽象方法、全局常量

限制

只能继承一个抽象类

一个子类可以实现多个接口

关系

一个抽象类中可以包含多个接口

一个接口中可以包含多个抽象类

实例化

                  都是通过对象的多态性,通过子类进行对象的实例化操作

实现限制

只能单继承

可以实现多个

特征

-

表示一个标准、一种能力

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值