标签:
继承
面向对象中,子类继承父类,避免重复的行为定义。一般来说,父类的父类也称父类,且同一个子类只允许拥有一个父类,而同一个父类则可以拥有多个子类。继承的出现提高了代码的复用性,也让类与类之间产生了关系,提供了多态的前提。
在Java中,使用关键字extends来表示类与类之间的继承关系:public class SwordsMan extends Role
中类SwordsMan继承了类Role,类SwordsMan扩充了类Role的行为,也就是类Role中有定义的程序代码,类SwordsMan因为继承而都拥有了。
注意建立对象时候的顺序,应该遵守从右往左读的原则(这样才符合IS-A原则):
Role role1 = new SwordsMan();
Role role2 = new Magician();
赋值时:如果用父类建立了一个对象实例,那么要将这个对象赋给它的子类时,需要进行强制转:
Role role1 = new SwordsMan();
SowrdsMan swordsMan = (SwordsMan) role1;
我们还可以使用instanceof来判断IS-A关系:
System.out.println(SwordsMan instanceof Role); \\输出true
System.out.println(Role instanceof SwordsMan); \\输出false
多态
按照字面的意思上说,就是多种状态。指的是使用一个接口,操作多种类型的数据。
Square(正方形)类继承Rectangle(矩形)类合适吗?
合适,因为正方形是一种(IS-A)矩形,它拥有矩形的一般特点。
实现格式:
class 子类名称 implements 接口A,接口B,….{
//子类成员声明
}
public abstract
可以省略,但要注意:接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字。interface A extends B, C{……}
可以用于定义常量,例如:
public enum Color {
RED, GREEN, BLANK, YELLOW
}
可以用于switch语句,将enum定义的枚举常数用以switch判断选择。
标签:
原文地址:http://www.cnblogs.com/taigenzhenjun/p/5794268.html