第一种,继承的灵活运用。
继承的最大好处在于,子类复制了基础类的接口。也就是说,向基础类对象发送的消息,同样可以发送给子类,因为他们的类型相同。但同时引起一个问题,“发送给该类一个消息,必须有方法去执行” 有时候,父类的抽象方法太多,导致子类复杂程序增加,所以父类每个抽象方法都要尽量合理。因为抽象方法是必须要子类实现的。若是一般方法子类可以实现,也可以不实现。当有消息发送时,按是否实现了该方法而让程序做判断处理。还有一点,子类可以增加新的函数来区别于父类。
关于这个有一个编程技巧。
比如父类有一个方法
public void draw(Shape s){
System.out.println("draw : "+s.getClass().getName());
}
这个方法是画自身,传给什么对象就绘制什么。比如这么使用
public static void main(String[] args) {
Shape s = new Shape();
s.draw(new Circle());
s.draw(new Square());
s.draw(new Triangle());
}
输出结果是
draw : Circle
draw : Square
draw : Triangle
骚年,想象下是不是Android的某些你不太明白的地方就是这么设计的。