1. 多态
继承是多态的实现基础
引用的多态
父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
方法的多态
创建本类对象时,调用本类方法
2种是调用子类的方法或继承的方法
子类中添加独有的方法时,不能通过父类的引用来调用方法
2. 多态中引用类型转换
向上类型转换:将小类型转换为大类型(隐式类型转换)
向下类型转换(强制类型转换):将大类型转换为小类型
instanceof运算符:一个引用是够是某个类型或某个类型的子类
3. java中的抽象类
1)abstract 关键字 定义抽象类
2)abstract定义抽象方法,只有声明,不需要实现
3)包含抽象方法的类都是抽象类(定义了抽象方法的)
4)抽象类中可以有普通方法,可以有抽象方法,也可以没有抽象方法
5)抽象类不能直接创建,可以定义引用变量
抽象类约束子类必须有哪些方法,不关注实现细节
抽象方法没有方法体,以分号结束
子类一定要继承抽象类
public abstract class TelPhone(){
public abstract void call();
public abstract void message();
}
public class CellPhone extends TelPhone(){
@override
public void call(){
System.out.println("打电话");
}
public void message(){
System.out.println("发短信");
}
}
4.java中的接口
接口是一种特殊的类,由全局常量和公共的抽象方法所组成
接口是一种规范,规范类的。被继承,或遵守实现的
关键字 interface
[修饰符] abstract interface 接口名[extends 父接口1,。。。]
{
}
修饰符一般是public
常量:接口中的属性是常量,即使定义时不添加public static final,系统也会自动加上
方法:都是抽象方法
方法的修饰符不能是private和protected
使用接口,一个类可以实现一个或多个接口,实现接口使用implements 关键字,java中一个类只能继承一个父类,不够灵活,通过实现多个接口可以做补充
接口命名时,加一个I
public interface IPlayGame(){
public void playGame();
}
public class SmartPhone extends Telphone imlements IPlayGame(){
}
接口引用,可以指向实现接口的类
IPlayGame ip1=new CellPhone();
ip1.playGame();
匿名内部类:
IPlayGame ip3=new IPlayGame(){
public void playGame(){
System.out.println("使用匿名类玩游戏");
}
};
ip3.playGame();
直接new接口,直接调用接口中的方法
new IPlayGame(){
System.out.println("2使用匿名内部类玩游戏");
}.playGame();
UML简介
统一建模语言
常用UML图
用例图:角色需要什么功能
序列图:角色与系统发生的关系
类图:类与类之间的关系