java 面向对象 接口与多态

来源:互联网 发布:天猫数据采集 编辑:程序博客网 时间:2024/05/17 21:07
一 接口
1.1 概念;接口是功能的集合,可看成一种数据类型,比抽象类更抽象的“类”。
接口只描述所应该具备的方法,并没有具体实现,实现由实现类完成。这样将功能的定义与实现分离,优化了程序设计。
一切事物均有接口。
1.2 定义:
用interface关键字 编译后会产生.class文件
public interface 接口名{
抽象方法1;
抽象方法n;  //都是抽象方法,无方法体
}
1.3 使用:类实现接口  implements  (本质是继承)
 重写所有方法(如果不想重写,可以把类变成abstract类)
类实现接口后,会把接口中的方法继承过来
1.4 接口中成员的特点
成员变量:有固定的修饰符public static final 定义的是个常量 
 默认被三个修饰符修饰,写不写都存在!!!
成员方法:有固定的修饰符public abstract 
  也是默认的,写不写都会存在!!!
  成员方法会被子类全部重写。
1.5 接口的多实现:
解决了多继承的弊端,接口中没有方法体,都是由子类来实现。
1.6 类继承类同时可实现多个接口(先继承后实现)
接口的出现避免了单继承的局限性。父类中定义事物的基本功能。接口中定义事物的扩展功能。
1.7 接口的多继承
extends继承  可以同时继承多个接口,因为没有方法体,不会出现调用的不确定性.
1.8 接口的思想与好处:
接口的出现扩展了功能.
接口其实就是暴露出来的规则.
降低了耦合性,解耦了.
1.9 接口与抽象类的区别:
相同点:
都位于继承的顶端,用于被其他类实现或继承;
都不能直接实例化对象
都包含抽象方法
不同点:
抽象类为部分方法提供实现,接口全部是抽象方法
一个类只能继承一个直接父类(可能是抽象类),但可以实现多个接口
优先选用接口.

!!!一切使用父类 父接口引用的地方,都可以传入其子类或实现类


二 多态
2.1 最终体现为 父类引用变量可以指向子类对象
多态的前提:必须有继承或实现关系,否则无法完成多态
在使用多态后父类引用调用方法时,会调用子类重写后的方法.
2.2 定义格式:
父类类型 变量名=new 子类类型();
变量名.方法名();
2.3 多态 成员的特点
记这句:(!!!多态时一切表现形式都是父类的表现形式,只有方法运行的是子类重写后的方法).
成员变量:
编译时,需要看左边,到底有没有这个变量,如果有则访问,
运行时,运行的是左边的内容.
成员方法:
编译时,看左边,有无方法,有则调用.
运行时,运行的是右边.
2.4 多态的转型
向上转型:(自动类型提升)
Fu fz=new Zi();多态本身就是向上转型
只能调用的是父类里面有的方法,运行的是子类重写后的方法,不能调用子类特有方法(弊端)
向下转型:(转换为子类对象)
如果要调用子类特有方法(强转)
2.5 好处与弊端
优点:提高了代码的扩展性.
弊端:不能使用子类特有功能.可转换,但要判断
2.6 instanceof关键字
判断某个对象是否属于某种数据类型
前提:需要有继承关系
boolean b = 对象 instanceof 数据类型;



0 0
原创粉丝点击