java关于抽象和接口
来源:互联网 发布:电脑上写小说的软件 编辑:程序博客网 时间:2024/04/26 19:08
比如说朋友说要给你一个动物,你就有了一个模糊的概念,
它要吃饭,喝水,睡觉,但是不知道具体它是猫还是狗或者兔子。
可以定义一个抽象类,抽象类用 abstract修饰,abstract可以修饰类,成员,方法。
然后我们可以如下定义,然后我们想这个动物可能喜欢跑,也可能不喜欢,也可能喜欢看电视
这样我们可以定义一个接口interface ,interface可以算是抽象的一种,因为,java不支持多继承
也就是只能继承一个,但是java提供了多继承的结局方案—接口。
用接口定义一个类的格式是interface method接口中成员都定义成常量前面会默认加final,而所有的
方法都是抽象方法,抽象类中可以定义非抽象方法,而接口中不行。
这样我们有了一个模糊的概念,我有一个动物,他必须喝水,睡觉,但是吃什么不一定,这个吃东西就可以定义
成抽象的,然后幻想他可能喜欢看电视,但是不确定喜不喜欢所以先买一个小电视放着,如果喜欢就调用,
不喜欢就等着可能别的动物喜欢。
abstract class Animal //定义一个抽象类,Animal{ public abstract void eat(); //有一个吃东西的方法,但不知道吃什么,所以定义成抽象的 void drink() { //喝水的方法,水都一样了 System.out.println("喝水"); } void sleep() { //动物都是需要睡觉的,不可能不睡 System.out.println("zzzzzz"); }}interface WatchTV //这个接口就是看电视,不知道喜不喜欢{ void watch(); //只知道可能喜欢看电视,并不知道看啥节目}interface Run //只知道可能喜欢动,不知道喜欢去哪{ void Run();}class Cat extends Animal implements Run,WatchTV //动物送来了,是一只猫,而且喜欢跑和看电视{ public void eat() { //而且发现喜欢吃的小鱼干 System.out.println("小鱼干"); } public void Run() { //喜欢运动,但是是在公园运动 System.out.println("公园"); } public void watch() { //居然喜欢看电视,而且是道德与法制 System.out.println("道德与法制"); }}class Demo { public static void main(String[] args) { Cat c = new Cat(); c.Run(); }}
这样看来,抽象类和接口区别是:
抽象类包含一般方法和抽象方法,而接口都是抽象方法。
继承抽象类必须都是属于关系,例如本文中的猫是动物的一种,
但是动物不一定都喜欢看电视,所以定义一个接口,里面包含抽象方法—看电视
如果接下来子类属于动物,例如猫就继承动物这个抽象类,然后将抽象方法重写
如果喜欢看电视,那就implements看电视这个接口,并重写其中的抽象方法(具体看什么电视节目)
也就是说接口中的方法不一定是某一个对象具备的,而抽象类却是必须具备的,所以用继承,所以一般接口都是用于功能扩展用的
并且抽象类和接口都不能被实例化
刚刚接触java,大家如果觉得有什么不对的地方,请指出谢谢!
- java关于抽象和接口
- 关于java抽象类和抽象接口的理解
- java 接口和抽象
- 关于接口和抽象类
- 关于抽象类和接口
- 关于接口和抽象类
- 关于接口和抽象类
- 关于抽象类和接口
- 关于抽象类和接口
- 关于接口和抽象类
- 关于抽象类和接口
- 关于接口和抽象类
- 关于抽象类和接口
- 关于Java接口和抽象类的思考
- 关于java中抽象类和接口的一些想法
- java中关于抽象类和接口的区别
- 关于Java抽象类和接口的区别与举例说明
- 关于Java中抽象类和接口区别的总结
- JDK1.7中的Jar包
- 虚幻引擎源码分析(5)
- Wireshark 3
- BZOJ4240: 有趣的家庭菜园
- 【codevs 2627】村村通
- java关于抽象和接口
- 《GEB-EGB》-摘要
- BZOJ3232: 圈地游戏
- [bzoj3174][Tjoi2013]拯救小矮人
- LeetCode 408. Valid Word Abbreviation
- 高精度复习
- NOIP模拟赛 T3:与众不同(线段树+滑动窗口)
- SSM框架---[JSP]Maven+(Spring+SpringMVC+MyBatis) - Hello World
- 机器学习算法(分类算法)—极限学习机(ELM)