- [[final]] - [[抽象类]] - [[接口]] - [[多态]] - - - - 总结 collapsed:: true - final - 最终的,最后的 - 修饰类 - 表示该类为最终类,不能被继承 - 修饰方法 - 表示该方法不能被子类重写 - 修饰变量 - 表示该量为一个常量 - 抽象类 - 具有抽象方法的类 - 当某一方法没有具体的实现案例时,此方法为一个抽象方法 - 不能被实例化,因为有方法不确定 - 抽象类中的抽象方法在子类中重写去实现 - 特点 - 具有抽象方法的类,一定是个抽象类 - 抽象类不一定具有抽象方法 - 抽象类通过abstract定义,并且抽象方法一定要在子类中实现 - 假如子类也实现不了这个方法,将子类也定义为抽象类 - 抽象类无法实例化 - 可放置的元素 - 抽象方法 - 非抽象方法 - 成员属性 - 构造器 - 面试题 - 抽象方法,可以定义成私有的不? - 答:私有代表无法被重写,抽象方法是一定要子类重写! - 抽象方法,可以定义为static的么? - 答:static方法的调用方式:类名.方法名 意味着:这个方法一定有过实现;但是抽象方法实现了么? - 抽象方法,可以定义为final的么? - 答:final 定义在方法上,表示这个方法不能被重写;但是抽象方法一定需要子类重写! - 接口 - 也是一种抽象,比抽象类还要抽象 - 作用:帮系统拓展新的功能 - 使用 - ```java public interface 接口的接口名{ //需要拓展的功能 } ``` - ```java 访问修饰符 class 类的类名 extends 父类 implements 接口{ //原有及接口拓展的功能 } ``` - 特点 - 接口不能被实例化 - 接口中抽象方法,默认为publlic abstract - 接口中抽象方法,必须要通过类给与实现 - 接口中的抽象方法,实现类可以变成抽象类,及可以实现接口中的方法 - 类只能单继承,但是接口可以多实现 - 类只能单继承,但是接口可以多继承 - 多态 - 多种形态 - > 相同的行为,不同的实现 - 静态多态 - 重载 - 动态多态 - 根据传入的对象不一样,调用相同的行为,拥有不同的实现 - 动态多态先决条件 - 必须要继承,必须要有方法的重写 - 父类的引用,可以指向子类的实现 - 父类的引用,看不到子类独有的东西 - 子类的引用,可以看到父类的东西,也可以看到自己独有的 - 动态绑定技术 - 父类的引用,指向不同子类的是实现,会自动调用对应子类的行为 - 用处 - 多态集合 - ```java Object[] objts = new Object[10]; ``` - 多态参数 - 在一个方法中,将父类定为参数,调用的时候,传入对应子类的实现 - 由于多态的特点,做到:传入不同的子类,调用相同的行为,可以做到不同的实现