学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > java >

第十四节 定义类的改进(2)

设置字体:
----------------------------------

             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.
 
----------------------------------
  • 学学习
  • 需帮助 请留言
课程列表
重点难点
赞助链接