多态 :
一种事物有多种形态
1.多态必须在继承的前提下
2.多态里一般都会方法重写
多态的语法: 父类的 对象 对象名称 = new 子类的对象();
父类的对象引用执行之类对象的引用 (向上转型)
多态里成员变量的获取:
在多态里, 编译看左边, 赋值看左边,多态中 获取成员变量都是看左边在多态里方法是如何获取:
调用方法结论: 编译看左边 ,运行看右边
多态的向上转型的语法:
父类 对象名称 = new 子类() 类似于 向上自动类型转换
Pet pet = new Dog()
// 缺点: 不能 调用自己独有的方法
// 向下进行转换(还原 成原来的样子)
语法: 子类 子类名称= (子类向上转型的对象名
Dog dog =(Dog)pet
// 如果还原的不正确会产生一个错误: 强制类型转换异常 java.lang.ClassCastException 解决问题
instanceof 判断是否能够 还原成功 instanceof 在强制类转换之前, 判断是否能够 还原成功
多态的两种体现形式 第一种是 以父类作为参数, 第二种是以父类作为返回值
接口 :
也就是一些规范 , 也就是定义一习方法.
如何来定义一个接口: 1. interface 接口的关键字
接口的语法 : public interface 接口的名称{
}
implements 实现接口的关键字
注意点:
1.接口里的方法都是抽象方法
2. 接口编译后也是一个class 文件
3. 实现类必须实现接口里所有的方法
4. 接口不能够被实例化, 只能实例化 实现类
// 开发中最常见的 三种赋值方法 第一个 通过传递父类参数 第二种set 第三种通过构造
接口: 是为了解决java 中的单继承问题
实现多个接口的语法: implements 接口1,接口2 implements Pager,Link
接口里的变量: 在接口里 不能有变量 ,只能有常量. 会给常量默认加上一个 public
//开发里常用的
public static final String NAME=“hhh”;
接口里的方法: 接口里的方法都是抽象方法, 抽象方法 系统默认会加上 public abstract,不可以有普通方法
接口没有构造方法: 实现类都是干爹, 只存在一个爸爸(Object)