java接口和抽象类

一、抽象类

1. 定义抽象类一定要用abstract指明是抽象类,可以用public修饰抽象类,也可以不用任何修饰符修饰。即只有public abstract  类名   以及   abstract  类名

(注意:abstract public 类名 也是合法的,即访问权限控制符和其它修饰符都可以交换位置)两种定义方式是合法的,其他的如protectedprivatefinal都不能修饰外部抽象类。

(扩展知识:修饰符是可以交换位置的,不管是修饰  类,方法,变量,常量,抽象类,接口等等,修饰符都可以相互交换位置。)

 

2.

   abstract class  AbstractTest {//抽象类前一定要加上abstract,访问控制符要么缺省,要么只能是public

        属性      -------------(可以有也可以没有)

        构造方法  -------------(可以有也可以没有)

        一般成员方法 ---------- (可以有也可以没有)

        抽象方法     ---------- (可以有也可以没有)

//抽象方法前一定要加上abstract, 访问控制修饰要么缺省,要么只能protected或者public

   }//抽象类与普通类唯一的区别就是多了抽象方法,其它的都跟普通类一样,包括修饰符的使用也是一样的。

 

3. 抽象类不能直接实例化:

即使里面没有抽象方法,也不能实例化。

   abstract class  AbstractTest {

   }//合法(抽象类的一种极端情况,类中什么都没有,但是也要用abstract指明是抽象类)

   但是同样不能实例化,AbstractTest abs = new AbstractTest();//非法

 

4. 抽象类可以通过父类声明指向子类对象去实例化:

   格式:抽象类  对象名 =  new  子类构造方法

 

 

二、接口

1. 接口就是一个特殊的抽象类

   a)里面的方法全部是抽象方法

   b)接口中只可以有公共静态常量和公共抽象方法的定义,或者二选一,或者里面什么都没有定义(即该接口只是一个标识接口,如java.io.Serializable就是一个标识接口)。

     接口:

      (abstract) interface 接口名 { //interface默认是一个特殊的抽象类。要么缺省(不

加任何修饰符。同一包中可以访问),要么只能加public修饰(即包内和包外全部可见)

          (public static final ) 常量  -------------- 默认就是public static final ,即公共

静态常量。(不管接口有没有用public修饰)

          (public abstract) 抽象方法 --------------- 默认就是公共抽象方法。(不管接口

有没有用public修饰)

}

   c)与抽象类相比,接口没有成员变量、构造方法、一般成员方法。

2. 现代企业开发中,用接口最为普遍,抽象类使用较少。现在的web开发中,用接口取代了大部分的抽象类。

3. 接口不能直接实例化。实现了接口的类可以实例化,可以使用父类声明指向子类对象。

   格式:

     接口  对象名 = new 类构造方法

4. java中一个类可以实现多个接口,从而通过接口“近似”实现“多继承”,以解决单继承过于单一的问题。强调:java永远是单继承。

5. 如果一个类实现了多个接口,当创建对象的时候,一定要当心父类声明指向子类对象的时候,不能访问子类独有的方法。在企业开发中,如果一个类实现了多个接口,则实例化时,直接使用子类声明创建对象。

6. 接口是可以多继承的。

   一般框架开发喜欢用接口多继承,最明显是Spring框架。我们去公司的话,很少很少很少使用接口多继承。

7.注意:接口不能实现接口(包括:即使是标识接口也是不能被一个接口实现,如: java.io.Serializable也是不能被一个接口实现的)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29263789/viewspace-774700/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29263789/viewspace-774700/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值