关于接口和抽象类
2007-04-09 00:11
274 查看
关于抽象类
抽象类使用abstract关键字,在类的继承层次中 位于上层的类因为更具有通用性,所以他的方法也更加抽象。
使用抽象类的注意问题:1即使不含有抽象方法,也可以把这个类声明为抽象类 2抽象类不能被实例化,但是可以定义一个对象变量来引用非抽象子类的对象 3扩展抽象类要么定义部分抽象方法或者不定义,这时候子类必须声明为抽象类,从这个层次上来说,抽象类里面的抽象方法充当着占位的角色,要么定义全部抽象方法,这时候子类就不是抽象的了
关于接口
可以把接口理解成一个没有实例域的抽象类,这里要注意 尽管不能定义实例域和静态方法 可以可以定义常量 如SwingConstants 就是这样的一个接口 只有关于方向的常量
关于这两个概念更深层次的区别 或者说干吗要提出两个不同的概念,可以拿它和c++的来做对比,因为c++支持类的多继承,但是java的类不支持多继承,所以提出接口来间接的实现多继承,因为一个类可以实现多个接口。
小弟刚接触java 关于如何使用接口实现多继承 实在没找到相关的例子,并且主观认为因为接口中不能定义实例域,所以多继承 主要是为了继承方法,可以要是碰到需要继承实例域怎么办呢?
抽象类使用abstract关键字,在类的继承层次中 位于上层的类因为更具有通用性,所以他的方法也更加抽象。
使用抽象类的注意问题:1即使不含有抽象方法,也可以把这个类声明为抽象类 2抽象类不能被实例化,但是可以定义一个对象变量来引用非抽象子类的对象 3扩展抽象类要么定义部分抽象方法或者不定义,这时候子类必须声明为抽象类,从这个层次上来说,抽象类里面的抽象方法充当着占位的角色,要么定义全部抽象方法,这时候子类就不是抽象的了
关于接口
可以把接口理解成一个没有实例域的抽象类,这里要注意 尽管不能定义实例域和静态方法 可以可以定义常量 如SwingConstants 就是这样的一个接口 只有关于方向的常量
关于这两个概念更深层次的区别 或者说干吗要提出两个不同的概念,可以拿它和c++的来做对比,因为c++支持类的多继承,但是java的类不支持多继承,所以提出接口来间接的实现多继承,因为一个类可以实现多个接口。
小弟刚接触java 关于如何使用接口实现多继承 实在没找到相关的例子,并且主观认为因为接口中不能定义实例域,所以多继承 主要是为了继承方法,可以要是碰到需要继承实例域怎么办呢?
相关文章推荐
- 关于抽象类和接口的问答题
- 关于抽象类和接口
- 关于接口和抽象类的区别
- 关于C#的抽象类与接口
- 程序小白---关于封装、继承、抽象类和接口的一些理解。
- 关于C#继承中 接口、抽象类、普通子类 微妙关系
- 关于接口与抽象类
- 关于JAVA继承、多态、抽象类、接口等性质的学习(1)
- 关于Java中的接口和抽象类的区别
- 关于抽象类 和接口的 重点
- 关于抽抽象类和接口
- 关于接口与抽象类
- 转载一篇关于 接口和抽象类 的文章,写的很好
- java中关于抽象类和接口的区别
- 关于C#中抽象类与接口的看法与理解
- 关于抽象类和接口
- 关于JAVA继承、多态、抽象类、接口等性质的学习(2)
- 关于C#接口和抽象类使用原则
- Java中关于抽象类抽象方法以及接口的总结
- 关于抽象类和接口