Java自学 Day03 总结
- 能够写出接口的定义格式
public interface 接口名{
// 常量(jdk7及其以前) 使用public static final修饰, 这3个修饰符可以省略不写
// 抽象方法(jdk7及其以前) 使用public abstract修饰,这2个修饰符可以省略不写
// 默认方法(jdk8额外增加) 使用public default修饰,public可以省略,default不可以省略
// 静态方法(jdk8额外增加) 使用public static修饰,public可以省略,static不可省略
// 私有方法(jdk9额外增加) 使用private修饰,private不可以省略
}
public interface IA {
//常量 默认修饰符是pulic static final这三个修饰符可以省略不写
public static final int num=10;
int NUMI=20;
//抽象方法 默认修饰符是public abstract这连个修饰符可以省略不写
public abstract void method();
void method2();
//默认方法 默认修饰符 pulic dafault其中public可以省略,default不可以省略
public default void method3(){
System.out.println("IA 接口默认方法");
}
//静态方法,默认修饰符public static,其中public可以省略,static不可以省略
public static void method4(){
System.out.println("静态方法");
}
//私有方法,只有jdk9满足,private不可以省略
//private void method5(){
// }
- 能够写出接口的实现格式
public class 实现类 implements 接口名{}
public class 实现类 implements 接口名,接口名,...{}
public class 实现类 extends 父类名 implements 接口名,接口名,...{}
- 能够说出接口中的成员特点
常量(jdk7及其以前): 主要供接口直接使用
抽象方法(jdk7及其以前): 供实现类重写的
默认方法(jdk8额外增加): 供实现类对象直接调用,或者实现类重写
静态方法(jdk8额外增加): 只属于接口,所以只供接口直接使用
私有方法(jdk9额外增加): 只能在本接口中使用
- 能够说出多态的前提
1.继承或者实现
2.父类的引用指向子类对象 \ 父接口的引用指向实现类对象
3.重写方法
//父类的引用指向子类的对象
Animal anl=new Dog();
anl.eat();//狗吃骨头
anl=new Cat();
anl.eat();//猫吃鱼
- 能够写出多态的格式
父 类的引用指向子类对象 \ 父接口的引用指向实现类对象
- 能够理解多态向上转型和向下转型
向上转型: 子类类型 向 父类类型转换的过程,这个过程是自动的
父类类型 对象名 = 子类对象;
向下转型: 父类类型 向 子类类型转换的过程,这个过程是强制的
子类类型 对象名 = (子类类型)父类类型的变量;
instanceof关键字 可以做类型判断
if(变量 instanceof 数据类型){}
如果变量指向的对象是属于后面的数据类型,那么返回true
如果变量指向的对象不是属于后面的数据类型,那么返回false
多态成员访问特点:
除了非静态方法编译看父类,运行看子类,其余都是看父类
- 能够说出内部类概念
概念; 一个类中定义在了另一个类里面,里面的那个类就是内部类,外面的类就是外部类
成员内部类:
访问特点:
1.在成员内部类中可以访问外部类的一切成员(包含私有的)
2.在外部类或者其他类中,要访问成员内部类的成员就需要创建成员内部类对象
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
- 能够理解匿名内部类的编写格式
概述: 本质就是一个类的匿名子类对象 或者是一个接口的匿名实现类对象
作用: 简化代码
格式:
new 类名\接口名(){
重写抽象方法
};
```