Java基础课——interface的理解
2015-07-11 10:47
836 查看
Java基础课——interface的理解
复习了一下Java里interface的用法,又看了一遍马士兵老师的讲interface的视频,加深了一下理解。关键的几个知识点是这几个-本质上就是特殊的抽象类,只包含常量和方法的定义,不包含变量和方法的实现
-常量只能是static final (为了避免C++中多继承带来的问题,定义成static final后这个常量就脱离于接口而存在),方法只能是public的,且一定是抽象方法
-与继承一样会有多台的存在
-可以继承其他的接口,添加新属性和新的抽象方法
最简单的接口:
[code]public interface Singer{ public static final int count = 1; public void sing(); public void sleep(); }
接口的多态:
[code]public class Test{ public static void main(String args[]){ //Student实现了singer接口,重写了其中的方法 //singer只能看到Student里sing和sleep方法 Singer singer = new Student("小明"); //这里形成了多态,输出的是Student里重写的方法 singer.sing(); //输出的是"小明" //Teacher实现了Singer和Painter两个接口 singer singer2 = new Teacher("都都"); //同上,这里输出了Teacher里重写的方法 singer2.sing(); singer2.sleep(); //将singer2看做Painter来用 Painter p1 = (Painter)singer2; singer2.draw(); //依然可以形成多态 method(Singer singer){ singer.sing(); } } }
相关文章推荐
- Java反射
- java中Keytool的使用总结
- spring mvc 给Controller添加事务不成功的原因
- Java - 吸血鬼数字
- eclipse ee插件安装
- JAVA简单成绩计算平均分(含文件读取)
- java操作word文档(jacob,poi)
- Java T与?
- InputStream中read()与read(byte[] b) 用法介绍
- 关于使用struts2跳转后css和js失效的解决方式
- 关于使用struts2跳转后css和js失效的解决方式
- [leetcode]Generate Parentheses(java)
- Java互斥锁简单实例
- [LeetOode][Java] Divide Two Integers
- Spring MVC Controller线程问题
- struts工作流程
- Java经典问题:传值与传引用?
- ubuntu下安装jdk
- Java Maven
- Android:复制eclipse下的Android项目,成为一个新项目