interface C extends A,B---->m()和n()
interface A{ void m(); } Interface B{ int m(); }就只能单继承
java中所有类型的对象都可以多接口进行赋值,编译时期都没错,运行时期查看的是实际创建类与接口直接是否有实现关系
接口中可以定义属性和方法? 可以定义属性,属性只能被public、static、final共同修饰, 可以定义抽象方法,默认被public、abstract共同修饰
接口不是类,底层还是.class文件
接口中是否都是抽象方法? 不一定 jdk1.7及其以前的版本中规定接口只能有抽象方法,jdk1.8版本及其以后接口中可以定义抽象方法和实体方法
jdk1.8关于接口的新特性 ①.允许定义实体方法(default和static方法) ②.Lambda表达式—重写接口中的抽象方法(接口中只能有一个抽象方法) ③.接口中只有抽象方法就是函数式接口—函数式编程
接口:模板 统一类形式
内部类—
概念-----类的结构的一种扩充分类 局部(方法)内部类 在方法中定义类,只能定义非静态的属性和方法,允许定义静态常量,可以继承和实现,不能被访问权限修饰符修饰,可以拿到外部类的所有属性和方法,只能拿到本方法的常量(隐式),创建对象只能在本方法中创建 成员内部类 在类中方法外的位置定义类,只能定义非静态的属性和非,允许静态常量,可以继承和实现、,可以被访问权限修饰符修饰,可以拿到外部类所有的属性和方法 静态内部类 在类中方法外的位置用static修饰的类,可以定义所有的属性和方法,允许定义静态常量,可以被访问权限修饰符修饰,可以继承和实现,只能拿到外部类的静态属性和方法 A.B.i A可以是对象,BA.B.i A 可以是对象,B是对象 i是B对象的属性 * A是类 B是对象 i 是B对象的属性 * A是外部类 B是静态内部类 i是内部类的静态属性 匿名内部类 可以被继承的类或者实现的接口,都可以具有匿名内部类的形式,匿名内部类最终做的事重写方法,匿名内部类优先使用一次,在方法中使用匿名内部类就和方法内部类使用一致,如果在类内方法外使用匿名内部类和成员内部类使用一致内部接口—(类中可以定义接口,接口中定义接口,内部的接口都要是静态的) 类中可以定义类或者接口,接口中可以定义类或者接口
java(java源生包) .lang—使用的时候不需要导包,在程序启动的时候就会默认把lang包下所有的内容直接加载到方法区—核心类库 .util—用于操作类或者对象的工具 .applet—小型应用程序 .awt—窗口 .beans—类 .io—数据流 .math—简单的数学运算 .net—网络 .nio—高并发 .security–安全 .sql—操作数据库 .text—格式化 .time—时间和日期
Javax(扩展包) org(第三方厂商)
接口----抽象类中所有方法都是抽象方法就把抽象类变成接口 类与接口通过Impelments产生实现(多实现),接口与接口之间是多继承 接口不能创建对象(没有构造方法),接口可以与所有类型的对象进行直接赋值,没有编译检测,运行时期有实现关系就能执行,属性(public static final),
jdk1.8新特性(可以定义实体方法(static 、default)、 Lambda表达式(重写接口中的抽象方法)、 函数式接口)内部类-----方法内部类(就是方法局部变量都是常量)----成员内部类(成员内部类对象的创建)----静态内部类(创建对象)--------匿名内部类(用于重写方法----类可以被继承或者接口可以被实现)
包-----声明包、导入包-----java(lang包、util包)、javax、org