java中接口的概念及使用(补充final修饰符的使用)
接口
初期理解,可以是一个特殊的抽象类
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class 用于定义类
interface 用于定义接口
接口定义时,格式特点:
1、接口中常见的定义,一个是常量,一个是抽象方法
2、接口中成员都有固定的修饰符
常量:public static final 显示声明或默认声明(final见补充)
方法:public abstract
记住:接口中的成员都是public的
接口是不可以创建对象的,因为有抽象方法。需要被子类全部实现,否则子类也是抽象类
接口实现多继承条件:
定义接口可以解决JAVA中无法多重继承的问题。
而且可以实现“多态” JAVA只支持单一继承,为弥补这一点,JAVA引入了接口这个概念,
简单的说接口是对某个事物对外提供的一些功能 的声明。
java只在接口与接口之间支持多继承。
java没有多继承,除非是接口多继承,并且被继承的接口的约定不能产生冲突,
比如C接口继承A接口和B接口,A接口有一个 void a(),B接口就不能有 int a()
java支持多实现:
接口可以被多实现,也是对多继承不支持的转换形式。java支持多实现接口与接口之间也可以继承。
一个类可以继承类和实现接口同时进行
示例代码:
<pre name="code" class="java">interface Inter { public static final int NUM=1; public abstract void show(); } interface InterA { public abstract void method(); } class Demo { public void function(){} } class Test extends Demo implements Inter,InterA { public void show(){} public void method(){} } interface A { public void methodA(){} } interface B extends A { public void methodB(){} } interface C extends B { public void methodC(){} } class D implements C { public void methodA(){} public void methodB(){} public void methodC(){} } class InterfaceDemo { public static void main(String[] args) { Test t=new Test(); System.out.println(t.NUM); System.out.println(Test.NUM); System.out.println(Inter.NUM); //Interface编译后也会生成class文件,可以调用} } }
补充:final修饰符的使用
final的使用:
fianl:最为一个修饰符;
1、可以修饰类,函数、变量。
2、被final修饰的类不能被继承,为了避免被继承,被子类的复写功能
3、被final修饰的方法不能被复写
4、被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,又可以修饰局部变量
当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便与阅读
而这个值不需要改变,所以加个final进行修饰。
作为常量,常量的书写规范所有字母都大写,如果多个单词组成,单词间通过_连接
5、内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量
final示例代码
class Demo { final int x=3; public static final double PI=3.14;//成为全局常量 final void show1() {} void show2() { fianl int y=4; } } class SubDemo extends Demo { } class { public static void main(String[] args) { System.out.println("Hello World!"); } }
如有转载请请务必保留此出处:http://www.cnblogs.com/xiangyangzhu/