继承
1、聚集:has a
聚合:球员和球队的关系
组合:手是人身体的一部分,比聚合的联系程度更紧密
2、子父类中变量的特点
super:代表父类对象的引用
3、子父类中函数的特点--覆盖(重写)
4、子父类中构造函数的特点--子类实例化过程
super();表示调用父类中的构造函数
super(参数列表);表示调用父类中相应的构造函数
5、final关键字
可以修饰类、函数、变量
被final修饰的类不可以被继承
被final修饰的方法不可以重写(override)
被fianl修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。常量用大写字母。eg:MY_PI
内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量
6、抽象类
abstract
抽象类的特点:
抽象方法必须放在抽象类中
抽象方法和抽象类都必须被abstract关键字修饰
抽象类不可以用new创建对象,因为调用抽象方法没意义
抽象类中的方法要被使用,必须由子类覆写其所有的抽象方法后调用,如果子类只覆盖了部分抽象方法那么该子类还是一个抽象类
注意:抽象类中可以有非抽象方法,可以不定义抽象方法(不让该类建立对象),但抽象类不能实例化
7、模版方法模式
/*使用模版方法模式实现获取运行时间的功能*/
public class GetTimeDemo
{
public static void main(String[] args)
{
RunCode r=new RunCode();
r.getTime();
}
}
abstract class GetTime
{
public final void getTime()
{
long start = System.currentTimeMillis();
runCode();
long end = System.currentTimeMillis();
System.out.println(" 时间:"+(end-start)+"毫秒");
}
public abstract void runCode(); //这部分要计算时间的代码是不确定的,所以将其“暴露”出来,具体要计算运行时间的类去实现
}
class RunCode extends GetTime
{
public void runCode()//具体实现需要计算时将的方法
{
for(int i=0;i<4000;i++)
{
System.out.print(i);
}
}
}
8、接口
interface implements
接口格式的特点:
接口中常见定义:常量,抽象方法。
接口中的成员都有固定修饰符(默认的,不需要自己写,但开发时最好写全)
常量:public static final
方法:public abstract
接口中的成员都是public的。
接口可以被类多实现
接口的特点:
接口是对外暴露的规则
接口是程序功能的扩展
接口可以用来多实现
类 与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口之间可以有继承关系