多态
- instanceof
java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例
使用格式: 对象 instanceof 类
使用解析:
形参 和实参 和 右边的类型
主要是看实参对象是否属于右边的类型 - 多态
什么是多态?
把子类的实例化对象赋值给父类的引用类型便称之多态现象;
多态又命多种状态: 多态 = 继承 + 重写
多态的接地气的理解:父类作为形参,子类类型作为实参
抽象类
-
抽象类
什么是抽象类,什么是抽象方法?
在父类的方法被子类重写覆盖,不可以被调用到时,索性去掉方法体变为抽象方法!可以理解为用进废退。
将父类中被重写的方法的方法体删掉,用abstract修饰,就相当于将这个方法声明为一个抽象方法,顺带将该类声明为抽象类。前提该方法中的方法体没有任何实际的作用。 -
抽象类的语法规则
1.被abstract修饰的类是抽象类
2.抽象类中可以有抽象方法,也就是被abstract修饰的方法,也可以没有。
3.抽象方法没有方法体,只有方法声明。
4.子类继承抽象类需要重写父类所有的抽象方法,否则,子类也必须声明为抽象类
5.抽象类有构造方法,但是不能被显示调用,也就是不能实例化,或者说抽象类没有对象。
6.抽象类的构造方法只在子类实例化时隐式调用。
7.抽象类的使用一般是作为引用类型,指向非抽象的引用实例,体现出多态。
8.构造方法和静态方法都不能(abstract)抽象修饰
静态方法不能被子类覆盖(重写),一旦声明为抽象方法 将永远没有具体的实现
接口
-
如何理解接口:
接口可以理解为定义的一组通用的组件,或者是功能模块。接口比抽象类更抽象,已经完全抽象得没边没影。对外提供服务的功能模块。 -
接口的语法规则:
1.定义一个接口:
public interface 接口名{
}
和定义类的区别在于,将class关键字换成了interface
2.接口中也有成员属性和方法
所有的成员属性都是 public static final (公共的静态常量)类型
所有的方法都是:public abstract (公共的抽象方法)
3.abstract(抽象)只修饰类和方法,不修饰属性和变量。
4.Static(静态)只修饰属性和方法,不修饰局部变量,也就是定义在方法体中的变量。
5.This 和super abstract static 能够修饰什么?类 成员属性 方法 局部变量