瑞翼工坊项目纪实(十)
接下来看一下这节课都学到了哪些知识吧!
接口的定义:使用关键字interface来定义接口
interface Printable{
final int MAX = 100;
void add(); //抽象方法
float sum (float x , float y);
}
为什么要使用接口?因为要克服java的单继承体系。
(3)接口与类的关系
接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类是描述对象的属性和方法。而接口却是包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。当类要实现接口中的方法时候,若这个类不是抽象类的话,这个类就要去实现接口中所有的方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口所有的属性都是public static final的;所有的方法都是默认public。一个类可以定义多个接口。
接口的特点
1.权限是public。
2.一个接口可以使用extends来继承其他接口,称为父接口,它将继承父接口中的变量和方法,一个接口可以有多个父接口,各父接口用“ ,” 相隔。
3.接口中的方法不能用static final 来修饰,接口是用来给别人实现的,所以不能是 static ,也不能是final 修饰,对于其声明的方法,也不能用static 或final来修饰,只能public,因为static 和 final 修饰的 不能被继承,对于其成员变量,却只能是public static final 类型,并且需要赋值。
4.接口中只能进行方法的声明,没有构造函数,接口就只有声明,如果有具体的实现就不叫接口了。为的就是了让别人实现自己。电脑要有由键盘,鼠标,显示器等组成,并没有具体规定的键盘显示器的尺寸品牌等,所以,三星 联想 等都各自实现了这个电脑规范(接口),也就是说满足了电脑规范所定义的要有键盘,鼠标,显示器等。
接口的实现
在Java中用类来实现接口中的方法,使用implements来声明这个类的接口。
重写接口的方法
非抽象类实现接口需要重写所有方法。
接口的回调
接口声明变量:Com com;Com为接口名 com为变量名
用实现接口的类创建的对象来调用类中的发放和类实现接口的方法
多态的概念
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。
重载式多态:也叫编译时多态,也就是说这种多态再编译时已经确定好了。在调用这种重载的方法时,通过传入不同的参数最后得到不同的结果。
重写式多态:也叫运行时多态。也就是说,只有程序运行起来,你才知道调用的是哪个子类的方法。 这种多态通过函数的重写以及向上转型来实现。
多态的条件
继承的存在:继承是多态的基础,没有继承就没有多态。
方法的重写:子类对父类中某些方法重新定义,再调用时就会调用子类的重写的方法。
向上转型:父类引用变量指向子类对象。
向上转型需要注意的问题
向上转型时,子类单独定义的方法会丢失,如上面Dog类中定义的run方法,当animal引用指向Dog类的实例时是访问不到run方法的,animal.run();会报错。子类引用不能指向父类对象。Cat c = (Cat)new Animal(); 语句会报错。
向上转型的好处
减少重复代码,使代码变的简洁,提高系统扩展性。
向下转型
向下转型的前提是父类对象指向子类对象,也就是说,向下转型之前,它得先向上转型。而且向下转型只能转型为本类对象。
继承链中对象方法调用的优先级
当父类对象引用变量指向子类对象时,被引用的类型决定调用谁的成员方法,引用变量类型决定可调用的方法。如果子类中没有覆盖该方法,那么会去父类中寻找。
本次瑞翼工坊的课堂充斥着弄弄的学习氛围,两位主讲人对大数据知识都有着深刻的理解,是同学们学习的榜样,同学们通过他们的讲解牢牢地掌握了培训的学术背景及技术由来,并能说出相关培训的大致内容。两位主讲人尽职尽责,倾囊相授,精心准备课堂内容。“书山有路勤为径,学海无涯苦作舟”,同学们更上一层楼,是我们的教学目标,我相信各位同学通过努力,一定可以学到更多的专业知识。