Day9
1.抽象(abstract): 抽取公共的抽象的属性 ,或者是方法。
抽象方法的语法: public abstract void show();
注意点:
1.在返回值前面加上这个关键字abstract
2.抽象方法都没有方法体 {};
3.抽象方法必须在抽象类里,反之, 抽象类里不一定是抽象方法,可以是普通的方法>>
4. 抽象方法 一般调用是没有意思 ,只有子类 重写之后才能产生意义
5.子类 继承了抽象类,子类必须重写父类的抽象方法, 除非子类也是一个抽象方法.
6.抽象类不能够被实例化,也就是不能够 new 出来
7.抽象类的构都是为了给其子类进行赋值,调用 父类的sper();
2.抽象类的语法是: public abstract 类名{ }
抽象类 vs 普通类
区别: 1.抽象类必须用abstract 关键字来修饰 2. 抽象类不能够被实例化
抽象方vs 普通方法:
1. 抽象方法也用abstract 关键字来修饰 2.抽象方法是没有方法体
-
多态 : 一种事物有多种形态
1.多态必须在继承的前提下 2.多态里一般都会方法重写 多态的语法: 父类的对象 对象名称 = new 子类的对象(); 父类的对象引用执行之类对象的引用 (向上转型) 3.多态里成员变量的获取: 在多态里, 编译看左边,赋值看右边 // 多态中获取成员变量都是看左边 4.在多态里方法是如何获取:调用方法结论: 编译看左边 ,运行看右边 5.多态的向上转型的语法: 父类 对象名称 = new 子类() 类似于 向上自动类型转换 Pet pet = new Dog() // 缺点: 不能 调用自己独有的方法 // 向下进行转换(还原 成原来的样子) 语法: 子类 子类名称= (子类向上转型的对象名 Dog dog =(Dog)pet // 如果还原的不正确会产生一个错误: 强制类型转换异常 java.lang.ClassCastException 解决问题 instanceof 判断是否能够 还原成功 instanceof 在强制类转换之前, 判断是否能够 还原成功 多态的两种体现形式 第一种是 以父类作为参数, 第二种是以父类作为返回值 内存图:
4.接口 ( implements ): 也就是一些规范 , 也就是定义一习方法. interface
接口的语法 : public interface 接口的名称{
}
注意点:
1.接口里的方法都是抽象方法
2. 接口编译后也是一个class 文件
3. 实现类必须实现接口里所有的方法
4. 接口不能够被实例化, 只能实例化 实现类
5.接口里的方法都是抽象方法,系统默认会加上 public abstract不可以有普通方法
6.接口没有构造方法: 实现类都是 干爹, 只存在一个爸爸
接口:是为了解决java 中的单继承问题
实现多个接口的语法: implements 接口1,接口2 implements Pager,Link
5.接口里的变量:在接口里不能有变量 ,只能有常量. 会给常量默认加上一个 public
//开发里常用的
public static final String NAME=“hhh”;
6.开发中最常见的三种赋值方法 1.通过传递父类参数 2.set 3.通过构造
总结:今天主要学习了java三大特性中的多态,学习内容有1.抽象(abstract)2.抽象类的语法 3. 多态 4.接口 ( implements ) 5.接口里的变量 6.开发中最常见的三种赋值方法 多态也算是一个难点了,多数人学习的时候都说比较难理,但这个是很重要的,一句话概括就是:事物在运行过程中存在不同的状态。但还是难理解,哈哈。
不懂的问题:.“多态里成员变量的获取: 在多态里, 编译看左边,赋值看右边”这个内容不懂???
来源:https://blog.csdn.net/weixin_41980692/article/details/99230388