一、类
1.向上转型
父类 f = new 子类();
f只能使用父类定义好的方法。
2.向下转型
父类 f = new 子类();
子类 z = (子类)f;
这时才能使用子类自己的方法。
一个普通的类修饰符只能为public或不写(包内友好的)。
二、抽象类
1.概念
类被abstract修饰。
抽象类不能创建对象。
一个类只能继承一个抽象类。
抽象类可以继承普通类(实体类)(如Object类)。
抽象类里可以没有抽象方法。若类里有一个是抽象方法,则类必须是抽象的。
抽象类可以实现接口。
2.作用
把所有类相似的、共有的功能抽象出来放到抽象类里,把没有办法实现的方法推迟到子类实现。
若接口里有多个方法,类只需实现一个方法,则可把类变成抽象的。
所有子类的有些行为都一样(如BasePage有些属性和共有的方法所有子类使用的都一样) 能实现的方法实现 不能实现的方法定义为抽象的。
三、接口
1.概念
关键字:interface
一个类可以实现多个接口
一个接口可以继承多个接口
接口不能实现接口
接口里只有抽象方法 不能有方法的实现
2.作用
1)接口拟补了java的单继承
例:学生 extends 人 狮子 extends 动物,扩展为:学生 extends 人 implements 活物 狮子 extends 动物 implements 活物
2)把做什么和怎么做分开
例:Service接口定义功能,ServiceImpl接口延迟实现。
3)所有的子类的行为全不一样(全要子类去实现),可以定为接口。
3.其他
接口中:
1)void method(); 等价于 public void method();
2)int i=100; 等价于 public static final int i=100;