您的位置:首页 > 编程语言 > Java开发

Java学习——接口和内部类

2018-03-20 14:32 302 查看
接口:定义了一系列的抽象方法和常量 ,形成一个属性集合。接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口。实现接口的类必须实现接口中定义的抽象方法。
接口使用的关键字:interface
接口定义注意:
1、接口的修饰符只能为默认的(无修饰符)或者public。当为默认时,接口是包可见的,在接口所在的包之外的类不能使用接口。修饰符为Public时,任何类都可以使用该接口。
2、接口可以声明变量,接口内的变量被 自动设置为共有的、静态的、最终的字段。
3、接口定义的方法都为抽象,它们被自动 地设置为public.
4、接口也被保存为.java文件,文件名与类名相同。



接口的实现,关键字:implements
class 类名 implements 接口1,接口2{
方法1(){

方法2(){


1、如果实现接口的类不是抽象类,它必须实现接口中定义的所有方法。如果该类为抽象类,在它的子类甚至子类的子类中要实现接口中定义的方法。
2、实现接口的方法时必须使用相同的方法名和参数列表
3、实现接口类中的方法必须被声明为public,因为在接口中的方法都被定义为public,根据继承的原则,访问范围只能放大,不能缩小。





接口和实现接口的类不能在同一个文件中。
接口之间的继承:









接口的应用 :



Animal和Mammal两个接口同上面一样,就不贴出来了:





通过接口来实现多态的一种方法。
通过接口创建常量组:
要用int类型的一组数来表示星期,而且这些天都是固定不需要改变的,就可以通过 接口来实现








内部类:




内部类分为静态内部类和非静态内部类
非静态内部类:如上面所示,它可以直接调用其宿主类的所有变量和方法,并且像宿主类的其他非静态成员那样直接引用它们。
静态内部类:用static修饰,不能直接访问其宿主类的成员,而必须通过对象来访问。







宿主类访问内部类的成员变量:

静态内部类的静态变量,直接用“类名.变量名”;
静态内部类的非静态变量,生成它的对象利用对象来访问;
非静态内部类中不包含静态变量,所以必须用非静态内部类的对象来访问;
静态内部类和非静态内部类对象的创建也不相同。





局部内部类:
变量定义在类中叫做成员变量,定义在方法中叫做局部变量;
内部类定义在方法中也叫做局部内部类。
匿名内部类:
匿名就是没有名字,匿名内部类就是没有类名的内部类。
对象克隆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: