抽象类
abstract
抽象出共有的行为作为抽象方法
eg:(动物 吃—>狗 吃骨头)
引例:
- 抽象类和抽象方法格式
- 注意事项
接口
一种公共的规范标准
功能的定义,用于设计阶段
- 定义格式
接口中可以有抽象方法,必须public abstract定义
- 接口使用步骤
需要实现类来具体实现接口中规范的功能方法
如果含有抽象类的接口的实现类没有覆盖重写接口中的所有抽象方法,那么这个实现类就必须是抽象类
- 默认方法—用于接口升级
- 静态方法
不允许接口的实现类对象使用
注意事项
- 私有方法
Java9及以后才有
解决两个方法重复代码太多问题
- 成员变量:(常量)
通过接口名称.变量名—去使用
public static final 数据类型 常量名称
修饰符可省略,必须进行赋值,命名使用大写字母下划线区分单词
*接口小结:
- 注意事项
- 接口之间的多继承
interface interFace extend interFaceA,interFaceB
多态
父类引用指向子类对象 or
接口引用指向子类对象
一个对象拥有多种形态,这就是对象的多态性
eg:小明是一个学生,小明也是人—人是学生的父类
- 多态的格式:
eg:Fu fu=new Zi();
- 成员变量使用特点:根据左边的引用类型来优先使用,没有则向上找
- 成员方法使用特点:根据new的来优先使用,没有则向父类找
- 总结:
- 成员变量:编译看左边,运行看左边–没有则向上找–>
直接访问时不会使用到子类变量值
方法访问变量时看方法属于谁 - 成员方法:编译看左边,运行看右边–没有则向上找
- 多态的好处:
- 对象的向上转型:
- 对象一旦向上转型为父类,那么就无法调用子类特有的内容----->使用对象的向下转型还原回去
eg:动物是父类,猫是子类,猫是动物就是向上转型,动物–>猫就是向下转型
- 对象的向下转型:
- 安全向下转型判断:
- 对象 instanceof 类名----boolean值判断对象能否作为后边类型的实例
- final关键字:
- 修饰一个类:
2.修饰成员方法:
3修饰局部变量:
方法的参数也时局部变量
eg:
4.修饰成员变量:只能直接赋值or构造赋值
eg:构造方法赋值
/*final关键字修饰成员变量--必须直接赋值和构造赋值二选一
* 且值不能变*/
public class Final {
//手动赋值
final private int age=15;
final private String name;
//构造方法赋值
public Final() {
name="不可变";
// age=16;值不可变
}
public Final(String name) {
this.name = name;
}
}