practice 1 抽象类示例
practice 2