Java面向对象之接口
2016-05-17 20:37
501 查看
接口(interface):
接口的地位等同于class,换句话说接口中的所有方法都是抽象方法。在声明接口中的方法时,可以使用abstract关键字,也可以不适用,通常情况下,都会省略掉abstract关键字
可以将接口看做是特殊的抽象类(抽象类中可以有具体方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法)
类可以实现接口。实现使用关键字implement表示,代表了某个类实现了某个接口
一个类实现了某个接口。那么该类必须实现接口中声明的所有方法,如果该类是个抽象类,那么就无需实现接口中的方法
Java是单继承的,也就是说某个类只能有唯一一个父类,一个类可以实现多个接口,多个接口之间用逗号隔开
接口的地位等同于class,换句话说接口中的所有方法都是抽象方法。在声明接口中的方法时,可以使用abstract关键字,也可以不适用,通常情况下,都会省略掉abstract关键字
可以将接口看做是特殊的抽象类(抽象类中可以有具体方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法)
类可以实现接口。实现使用关键字implement表示,代表了某个类实现了某个接口
一个类实现了某个接口。那么该类必须实现接口中声明的所有方法,如果该类是个抽象类,那么就无需实现接口中的方法
Java是单继承的,也就是说某个类只能有唯一一个父类,一个类可以实现多个接口,多个接口之间用逗号隔开
package com.yuanzijain02; interface MyInterface{ public void output(); } interface MyInterface2{ public void output2(); } class MyClass implements MyInterface, MyInterface2{ public void output(){ System.out.println("output"); } @Override public void output2() { // TODO 自动生成的方法存根 System.out.println("output2"); } } public class Test3 { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.output(); myClass.output2(); } }6.一个类可以同时继承一个父类,同时在实现多个接口
package com.yuanzijain02; interface MyInterface{ public void output(); } interface MyInterface2{ public void output2(); } class MyParent{ public void output3(){ System.out.println("output3"); } } class MyClass extends MyParent implements MyInterface, MyInterface2{ public void output(){ System.out.println("output"); } @Override public void output2() { // TODO 自动生成的方法存根 System.out.println("output2"); } } public class Test3 { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.output(); myClass.output2(); myClass.output3(); } }7.多态:所谓多态就是指父类型的引用可以指向子类型的对象,或者是接口类型的应用可以指向实现该接口的类的实例,关于与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换一样
package com.yuanzijain03; public class Test4 { public static void main(String[] args) { //向上类型转换 /* AA bb = new BB(); //接口类型的引用指向 bb.output(); */ //向下类型转换 /* AA aa = new BB(); BB bb = (BB)aa; bb.output(); */ } } interface AA{ public void output(); } class BB implements AA{ public void output(){ System.out.println("BB"); } }
相关文章推荐
- Java第八天听课总结--jar 包的使用(1)
- Struts2--Action详述
- 【Java】"|"与"||"的区别
- Java并发机制深究1-synchronized和volatile
- 【java】位运算
- 使用Spring MVC写RESTFUL API
- Java第三天听课视频
- Java 单例设计模式
- spring 3.x变通实现@Conditional注解的功能
- 基于SpringMVC的RESTful API设计
- java的动态绑定与静态绑定
- Rxjava中的range的简单使用。
- java之输入分数(小数)评等级
- java 字节数组转int
- 我爱学Java之四种引用类型(强软弱虚)
- Spring RMI Example
- JAVA线程-线程间通信
- Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数
- Java内存模型深度解析
- java GZIP压缩和解压