JAVA抽象类与接口的特点表现

一、抽象类的特点

抽象类的特点有:
  1 抽象类中不一定有抽象方法
  2 只要有抽象方法的类,必须是抽象类
  3 抽象方法和抽象类使用 abstract 修饰
  4 没有抽象方法的抽象类有意义,防止外界创建对象
防止外界实例的方式:1) 构造方法私有
                                    2) 抽象类
                                    3) 接口
                                    4) 内部类
  5 抽象类不能够实例化,得利用多态
  6 抽象类的子类特点:1) 如果子类想要继承抽象类,就必须实现抽象类中的所有的抽象方法                                            2) 如果子类不想实现父类的抽象方法,那么子类必须升级为抽象类
  7 抽象类的子类特点:抽象类中:
        成员变量:给子类使用
        成员方法:给子类使用
        构造方法:帮助子类初始化父类继承下来的成员
        静态方法:直接通过类名访问,防止创建对象的不建议访问方式
        常量:可以,方便访问
        抽象类和普通类没有区别,只不过抽象类多了抽象方法
        抽象类的抽象方法强制子类重写
        非抽象方法直接给子类使用
        构造方法和成员变量直接给子类使用
 8 抽象类是服务类,成员一般使用public或者protected
 9 private修饰的方法不能被子类继承,更不能被重写,abstract修饰的方法强制子类重写
        final修饰的方法不能被子类继承,二者冲突

二、接口的特点

1、接口可以用来多实现;

2、接口是程序的功能扩展;

3、接口的出现降低耦合度;

4、接口是对外暴露的规则;

5、接口与接口直接可以有继承关系,且接口可以多继承;

6、类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口;

三、抽象类与接口的区别

先用我自己的语言来描述吧,在我看来,两者都有优缺点。

抽象类最大的优点也就是其可以有效的提供某些方法的部分实现,比如你在一个抽象类里面加入一个新的具体方案时,它的所有子类都可以得到,所以它更容易扩展。但由于JAVA的单继承性,它的效能就大打折扣。

至于接口,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。简单来说,接口就是定义混合类型的理想工具。

四、抽象类与接口的最佳共用

基于抽象类和接口的性质特点,所以最基本、最经典的组合就来了:声明类型的工作仍然由Java接口承担,但是同时给出一个Java 抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类,也就是说,在层次结构中,Java 接口在最上面,然后紧跟着抽象类,这样就都可以发挥它们的最大优点。这个模式就是“缺省适配模式”。

最简单的例子:

public  interface Target { 
     void f1(); 
     void f2(); 
     void f3(); 
     void f4(); 
     void f5(); 
}
public  class DefaultAdapter  implements Target { 
     public  void f1() {} 
     public  void f2() {} 
     public  void f3() {} 
     public  void f4() {} 
     public  void f5() {} 
}
public  class MyInteresting  extends DefaultAdapter{ 
     public  void f5(){ 
        System.out.println( "巴拉巴拉巴拉巴拉"); 
    } 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值