java接口和多态

来源:互联网 发布:python insert怎么用 编辑:程序博客网 时间:2024/05/24 05:02
一.接口
什么是接口:前期理解 可以理解为一个特殊的抽象类
当抽象类中的方法都是抽象类 那么该类可以通过接口的形式来定义

class:用于定义类
interface:用于定义接口
1.语法:
访问权限修饰符 interface 接口名
{
//全局变量
//抽象方法
}
接口中的成员修饰符是固定的
成员变量:public static final
成员函数: public abstract
如果不写 默认会给加上 只要是定义为接口 interface 那么成员的修饰符是固定的 建议写上


implements:实现
类与接口之间的关系 实现
2.特点:
1.接口是一个特殊的抽象类 特殊在"接口中所有的方法都是抽象的 所有的成员都是常量"
2.允许多实现 弥补了java类类之间单继承的不足 因为接口中没有抽象类中的方法体 所以实现谁都行 不冲突
3.java中允许单继承的同时 实现多个接口
4.接口可以继承接口 也有关系 接口继承接口 一个接口可以继承多个接口 因为都是抽象的

简短版:
1.接口可以用来多实现
2.类与接口之间是实现关系 而且一个类继承一个类的同时 可以实现多个接口
3.接口与接口之间可以有多继承关系


3.接口的好处
他是对外暴露了规则 提高了程序的扩展性
封装是提高了程序的安全性
4.接口的本质
从接口设计的角度而言 接口中定义了一套规则和标准


面向对象三大特征之一 多态
定义:某一事物的多种存在形态


例如:动物中 猫 狗
猫 c = new 猫();
动物 d = new 猫();
多态的前提
1.父类的引用 指向 子类对象
2.必须是类与类之间有关系 要么继承 要么实现
3.子类存在重写
多态的好处
提高了程序的扩展性
多态的弊端
只能使用父类的引用访问父类中的成员


Animal an=new Cat();Animal an=new Animal;
Cat c=(Cat) an;Cat c=(Cat) an;
可以 错误
不能强行将一个动物转成猫 不能讲父类的对象 转成子类的对象
多态转的是父类引用 指向了自己的子类对象时 该应用可以被动提升
也可以被强转 多态至始至终 都是子类对象在做着变化
多态的注意事项:
1.多态下 对成员方法的调用 编译看左边(父类) 运行看右边(子类)
2.多态下 对成员变量的调用 编译看左边(父类) 运行还是看左边(父类)
3.多态下 静态成员变量的调用 编译看左边(父类) 运行看左边(父类)


instanceof
java中instanceof运算符是用来运行时指出对象是否是特定类的一个实例
通过返回一个boolean类型的值来指出
格式:对象 instanceof 类(对象是不是这个类)
true:对象是这个实例
false:对象不是这个实例
不常用 1.当子类有限时
      2.当传输类型需要进行其他操作的时候 比如比较
原创粉丝点击