Java接口复习一下
单继承容易导致继承链过长,引入接口interface,接口是一种特殊的类,可以继承extends,
接口用public修饰,里面的方法没有方法体,是抽象方法。
接口的定义:很简单
所有方法都是public abstract属性的,接口定义了可能要做什么,但是么有具体干什么
对功能的聚合,用接口来实现!
比如说,一个汽车,自动挡汽车可以继承汽车,逻辑上不冲突,但是有了无人驾驶汽车,不能无人驾驶又继承自动挡汽车,功能不同,可以使用接口实现,接口继承汽车类。
用implements 关键字。
用可实例化的类来实现接口,接口是抽象的,不可实例化。
接口中 的静态方法,只能用接口的名称来调用。
初学者不要去接口里面定义私有方法!有了这个可以写更灵活的代码
接口,语义上的一致,功能的聚和!
Java是面向对象,继承是最大特性,为了更好的复用代码,要学会继承。
别去背,背多了,死板,考试是没有意义的!记得越牢,反而不好适应新版本jdk
看到一个东西,不是直接写class xxx, 不会用继承,接口,就没理解面向对象的机制!不会用Java语言。
final的作用:安全机制,是一把锁
final + 方法:防止方法被重写
final + 类:防止类被继承,String ,Math 这些就是final修饰的!
final + 变量:常,可读,不能改
优点
static关键字
类名j点.方法不适应了
static + 方法:全局方法,属于整个类。不被任何一个对象所有。内存分配随类分配而分配!
调用格式:类名点方法
美元符号分级开。出现一个class 就会编译长生一个点class
内部类,
只能在类内部使用,加了public,也只能在类内部使用。
可以嵌套,
静态内部类不能有外部引用。
匿名类
只用一次,为了减少码农 的工作量,给出了匿名类的规则,直接new + 类名/接口名(){,,,,}
以前构造对象是用new操作符,这个是代理模式,
匿名内部类的使用
多态
思考题:定义一个类,只能有一个实例对象,怎么办?(word可以开多个窗口,微信只有一个窗口)
lambda可以将函数当参数传递过去 ->
程序调用方法
系统调用方法