javaSE-面向对象-接口
来源:互联网 发布:pe下安装linux的iso 编辑:程序博客网 时间:2024/04/25 11:36
格式:
interface 接口名{}
接口中的成员修饰符是固定的。
•成员常量:public static final
•成员函数:public abstract
•发现接口中的成员都是public的。
接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
接口的特点
l接口是对外暴露的规则。
l接口是程序的功能扩展。
l接口的出现降低耦合性。
l接口可以用来多实现。
l类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
l接口与接口之间可以有继承关系。
接口与抽象类
共 性:
都是不断抽取出来的抽象的概念
区别 1:
抽象类体现继承关系,一个类只能单继承
接口体现实现关系,一个类可以多实现
区别 2:
抽象类是继承,是 "is a "关系
接口是实现,是 "like a"关系
区别 3:
抽象类中可以定义非抽象方法,供子类直接使用
接口的方法都是抽象,接口中的成员都有固定修饰符
/*如果一个抽象类的方法都是抽象的,这时可以将抽象类用另一种形式来体现。就是接口。 接口定义的关键字就是 interface *//*abstract class AbsDemo{abstract void show();abstract void method();}*/interface InterDemo{/*接口中成员的定义:常见成员有两种:1,全局常量。2,抽象方法。接口中的成员都是public的。接口:子类必须实现了接口中所有的抽象方法后,子类才可以实例化。否则,该子类是一个抽象类。*/public static final int X = 3;public abstract void method1();public abstract void method2();}class Demo implements/*实现*/ InterDemo{public void method1(){}public void method2(){}}class InterfaceDemo{public static void main(String[] args) {Demo d = new Demo();System.out.println(d.X);System.out.println(Demo.X);System.out.println(InterDemo.X);}}
/*接口的好处:是将多继承进行改良,用多实现进行体现。一个类只能继承一个类,但是一个类可以实现多个接口。另一个体现。一个类在继承另一个类的同时,还可以实现多接口。接口的出现避免了单继承的局限性。*/interface DemoA{public void show();}interface DemoB{public void show();}class DemoC{}class Demo extends DemoC implements DemoA,DemoB//多实现。{public void show(){}}interface A{void show();}interface B{void show();}interface C extends B,A//接口之间存在着多继承。{}class InterfaceDemo2 {public static void main(String[] args) {System.out.println("Hello World!");}}/*抽象类中没有抽象方法的举例。*/interface Inter{public void method1();public void method2();public void method3();}//没有抽象方法的抽象类。abstract class Test implements Inter{public void method1(){}public void method2(){}public void method3(){}}class Test1 extends Test{public void method1(){System.out.println("test1,method1 run);}}class Test2 extends Test{public void method2(){System.out.println("test2,method2 run);}}/*class Test1 implements Inter{public void method1(){System.out.println("test1,method1 run);}public void method2(){}public void method3(){}}class Test2 implements Inter{public void method1(){}public void method2(){System.out.println("test2,method2 run);}public void method3(){}}*/
interface A{void show1();void show2(); }interface B{void show ();}interface C extends A,B{}abstract class D implements A{@Overridepublic void show2() {}@Overridepublic void show1() {// TODO Auto-generated method stub}}
0 0
- javaSE-面向对象-接口
- javaSE-面向对象-接口和抽象类的区别
- JavaSE----面向对象(多态、抽象类、接口)
- 【JavaSE笔记】面向对象(四)_接口
- javaSE-面向对象-简介
- javaSE-面向对象-继承
- javaSE-面向对象-多态
- javaSE-面向对象-Object
- javaSE-面向对象-异常
- javaSE-面向对象-包
- javaSE之面向对象
- JavaSE--面向对象
- JavaSE面向对象--QuickHit
- JavaSE面向对象-封装
- JavaSE学习--面向对象
- javase-面向对象
- javaSE:面向对象知识点
- JavaSE面向对象练习
- php正则表达式
- 最短路
- EAI、ESB、SOA关系
- Java 线程池的原理与实现
- linux后台服务编程简单样例
- javaSE-面向对象-接口
- 程序员们的青春代码
- MySQL基础知识---------插件式存储引擎体系结构
- 指针(二)
- Spring 3.2.1+proxool +mysql空白项目搭建
- 配置php.ini后不显示页面
- apache php 多站点配置 重新整理
- 浅谈<jsp:useBean />与<% import>引包
- visual studio 2010 访问数据库的时候报错 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。