Java学习——接口和内部类

接口:定义了一系列的抽象方法和常量 ,形成一个属性集合。接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口。实现接口的类必须实现接口中定义的抽象方法。

接口使用的关键字: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修饰,不能直接访问其宿主类的成员,而必须通过对象来访问。





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

静态内部类的静态变量,直接用“类名.变量名”;

静态内部类的非静态变量,生成它的对象利用对象来访问;

非静态内部类中不包含静态变量,所以必须用非静态内部类的对象来访问;

静态内部类和非静态内部类对象的创建也不相同。



局部内部类:

变量定义在类中叫做成员变量,定义在方法中叫做局部变量;

内部类定义在方法中也叫做局部内部类。

匿名内部类:

匿名就是没有名字,匿名内部类就是没有类名的内部类。

对象克隆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值