DAY10-接口,内部类

今日内容:接口,内部类

接口和抽象类的异同

1.抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高
2.抽象类可以有具体的方法 和属性, 接口只能有抽象方法和不可变常量
3.抽象类主要用来抽象类别,接口主要用来抽象功能.
4、抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。
注意:
1.接口方法,访问权限必须是公共的 public
2.接口内只能有公共方法,不能存在成员变量
3.接口内只能含有未被实现的方法,也叫抽象方法,但是不用abstract关键字。

类实现接口,利用关键字implements完成。

格式

interface 接口名{
常量
抽象方法
}
常量:必须用public static final修饰
抽象方法: 必须用public abstract修饰
特点: 1.不能创建对象
2.需要有子类来实现接口,如果只是实现了接口中的部分方法,那么该子类还是一个抽象类。
**class 类名 implements 接口名{}**由于修饰符是固定的,因此漏写某个修饰符也不会报错,系统会自动补全;
3.接口类型的引用可以指向自己的实现类对象(子类)
4.一个类中继承一个父类同时实现多个接口也是可以的
class A extends B implements C,D,E{}
类与类之间的关系:单继承
类与接口之间的关系:多实现
接口与接口之间的关系:多继承

接口的适配:

需求:有一个接口,里面定义了5个抽象函数,我们要写一个类实现这个接口,但是我们只需要其中一个方法,怎么解决?
解决办法:我们可以先定义一个类实现这个接口的所有方法,然后再写一个类继承我们前面写的那个类,这样就解决了。前面我们定义的这个中转的类就是适配器
接口的适配,又叫做接口的实例化。
在这里插入图片描述

内部类

定义:一个类定义在另一个类里,里面的这个类叫内部类,外面的类叫外部类。
内部类分为成员内部类(定义在类中)局部内部类(定义在方法中),静态内部类,匿名内部类(使用static修饰的成员内部类叫静态内部类)局部内部类可以直接访问外部类中的成员。

Java内部类详解。 http://www.cnblogs.com/dolphin0520/p/3811445.html
 https://www.cnblogs.com/dorothychai/p/6007709.html

猜你喜欢

转载自blog.csdn.net/qq_42837554/article/details/88066799