System.out.println("总收入:"+testcar.getMoney()); } } interface Car { //汽车名称 String getName(); //获得汽车售价 int getPrice(); } //宝马 class BMW implements Car { @Override public String getName() { // TODO Auto-generated method stub return "BMW"; } @Override public int getPrice() { // TODO Auto-generated method stub return 300000; } } //奇瑞QQ class CheryQQ implements Car { @Override public String getName() { // TODO Auto-generated method stub return "CheryQQ"; } @Override public int getPrice() { // TODO Auto-generated method stub return 20000; } } 运行结果: 1. 车型:BMW 单价:300000 2. 车型:CheryQQ 单价:20000 3. 总收入:320000 继承是多态得以实现的基础。从字面上的理解。多态就是一种类型(都是Car类型)表现出多种状态(宝马汽车的名称是BMW,售价是300000;奇瑞汽车的名称是CheryQQ,售价是20000)。将一个方法调用这个方法所属的主体(也就是对象或类)关联起来叫做绑定,分前期绑定和后期绑定两种,下面解释一下它们的定义: 1. 前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。比如static方法和final方法,注意,这类也包括private方法,因为它是隐shi 2. 后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动态绑定,或者运行时绑定。除了前期绑定外所有方法都属于后期绑定。 多态就是在后期绑定这种机制上实现的,多态给我们带来的好处是消除了类之间的耦合关系,使程序更容易扩展。比如在上例中,新增加一种类型汽车的销售,只需要让新定义的类继承Car接口并实现它的所有方法,而无需对原有代码做任何修改,CarShop类的sellCar(Car car)方法可以处理新的车型了,新增代码如下: Java代码: 1.//桑塔纳汽车 2.class Santana implements Car { 3. public String getName(){ 4. return “Santana”; 5. } 6. public int getPrice() { 7. return 80000; 8. } 9. } * Final-概念 Final 中文意思:最后的,最终的。 Final 可以修饰变量或者方法。 在某些情况下,程序员可能有以下需求: ① 当不希望父类的某个方法被子类覆盖(voerride)时,可以用final关键字修饰。 ② 当不希望类的某个变量的值被修改,可以用final修饰。 如果一个变量时final,则必须赋初值。 ③ 当不希望类被继承时,可以用final修饰。 * Final-注意事项 1. final修饰的变量又叫常量,一般,用xx_xx_xx来命名 2. final修饰的变量在定义时,必须赋值,并且以后不能再赋值。 * final-什么时候用 1. 因为安全的考虑,类的某个方法不允许修改。 2. 类不会被其它的类继承。 3. 某些变量值是固定的,比如圆周率 3.1415926. |