面向对象3大特性:-----------------------------》多态
对象的多种状态
多态就是对象的多种状态
在面向对象中的多态指的是,父类引用,指向子类实例的现象,叫做多态
父类引用指向子类的实例
此时可以使用父类来代替所有的子类
用多态创建的 对象例如
在继承的基础上 使用多态 创建的对象可以使用 父类 可以用的 变量和方法
但 如果(方法或成员变量)被子类重写 会执行 子类 特有的
例如 在按钮中 创建一个 按钮类 ( 用 各个其它按钮类继承) 创建时
例如 按钮类名 xx = new 屏幕按钮xx(); //屏幕按钮是 一个继承 按钮类的 在自己屏幕按钮类中实现自己 的方法
按钮类名 xx = new 窗口按钮xx(); //窗口按钮是 一个继承 按钮类的 在自己窗口按钮类中实现自己的方法
等等 …
抽象
抽象方法:没有实现的方法抽象的方法, abstract
1、如果某个类中,某个方法没有实现,则需要使用abstract将该方法申明为抽象方法
2、一旦某个类中存在了抽象方法,该类必须申明为抽象类。
3、抽象类没办法直接实例化
4、子类一旦继承了抽象类,必须要实现抽象方法,如果没有实现,则必须将子类申明为抽象类,继续向下传递这种特性
====================
抽象类中可以普通的方法?
可以
抽象类中可以没有抽象方法吗?
可以
抽象类的特点
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082120321994.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190821225238573.png)
细节问题
接口
在Java中 ,可以使用interface 关键字 声明的类 , 叫做接口
注意:接口的成员都必须public的,即使没有声明 ,也是public
接口中的方法都是都是抽象方法(接口中方法没有实现)
接口不能有实现了的方法(必须都是抽象方法,jdk1.8之前)
接口可以多个实现( implements TestInterface, MyInterface2)
接口可以继承接口(重点掌握)public interface MyInterface2 extends TestInterface
在jdk1.8之后,接口可以使用static或者default关键字定义实现了的方法
implements Animal 不继承 也可在 外部类 用 接口名.方法 或 接口名.变量 用这个接口
接口的命名规则:
接口包的命令规则:
1、第一种情况
1、将接口定义在包中 UserDao.java
2、接口的实现类一般方法该包的下一层 xxxxx.impl UserDaoImpl.java
2、第二种情况
将接口和实现类放在一起
IUserManager
UserManager
匿名内部类
将接口方法 在外类中创建 一个 接口对象
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190821221103740.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk1NjQxNA==,size_16,color_FFFFFF,t_70)
抽象类也可实现匿名内部类