Java面向对象编程(3)--抽象类,接口,final

Java面向对象编程(3)--抽象类,接口,final

接口---注意事项

1, 接口不能被实例化

2, 接口中所有的方法都不能有实体,

3, 一个类可以实现多个接口

//一个接口

Interface  KKK

{

    Public voidcry();

}

//usb接口

Interface Usb

{

    Public void cry();

}

Class Camera implements Usb,KKK

{

   

}

 

4, 接口中可以有变量,但是变量不能用private和proteced修饰

a,接口中的变量,本质上都是static 的,而且是final,不管你加不加static修饰

b,在java开发中,我们经常把经常用到的变量,定义在接口中,作为全局变量使用。放访问形式:接口名.变量名

5, 一个接口不可以继承其他的类,但是可以继承别的接口,言外之意就是这个接口有多了一个方法。

 

 

继承和实现接口是可以同时发生的。

实现接口VS继承类

案例:一直猴子想要鱼和鸟的功能。

//鱼的接口

interface Fish

{

   publicvoidswimming();

}

 

//鸟的接口

interface Bird

{

   publicvoidflying();  

}

 

 

//父类猴子

class Monkey

{

   intname;

   //

   publicvoidjump()

   {

    System.out.print("猴子会跳");

   }

}

 

//子类小猴子

class LittleMonkey extends Monkey implements Fish,Bird

{

 

   

    public void swimming() {

        // TODO Auto-generated method stub

       

    }

 

   

    public void flying() {

        // TODO Auto-generated method stub

       

    }

   

}

谁实现接口,如果有错,那么也就那个实现接口的类报错,但是如果是类的继承,如果有错,必定会有很多类报错,看上图即知。

案例:用接口实现多态。卖小汽车。

package com.pan;

 

public classDemo9_24_3 {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

         CarShop ashop = new CarShop();

        

         //卖出一辆宝马

         ashop.sellCar(new BMW());

         //卖出一辆奇瑞QQ

         ashop.sellCar(new CheryQQ());

         System.out.print("总收入"+ashop.getMoney());

    }

 

}

//汽车的接口,规定汽车的一些功能

interface Car

{

   //汽车的名称

    StringgetName();

   

    //获得汽车的售价

    int getPrice();

}

 

 

//宝马

class BMW implementsCar

{

  publicString getName()

  {

      

       return "BMW";

  }

  

  publicintgetPrice()

  {

       return 300000;

  }

}

 

//奇瑞QQ

class CheryQQ implements Car

{

   publicString getName()

   {

    return "Chery QQ";

   }

   

   publicintgetPrice()

   {

    return 200000;

   }

 

}

 

//汽车出售店

 class CarShop

{

   //售车收入

    private int money = 0;

   

    //卖出一部车

    public void sellCar(Car car)

    {

        System.out.println("车型:"+ car.getName()+"单价"+car.getPrice());

        money += car.getPrice();   

    }

   

    //售车的总收入

    public int getMoney()

    {

        return money;

    }

}

结果:


理解:

class Changan implements Car

{

    public StringgetName()

   {

    return "Changan";

   }

   

   publicintgetPrice()

   {

    return 200000;

   }

}

 直接添加关于这个汽车类型的类

 

 

Final ---概念

作用:修饰变量和方法可以

在某些情况下,程序员可能有以下的需求

1, 当不需要父类的某个方法被子类覆盖的时候,可以用final关键字修饰

2,当不希望类的某个变量的值被修改的时候,可以用final修饰

如果一个变量是final修饰的,那么必须赋初值

3,当不希望类被继承的时候,可以用final 修饰

 

Final—注意事项

1,final修饰的变量又叫常量。一般用xx_xx_xx来命名

2,final修饰的变量在定义的时候,必须赋值,并且以后都不能赋值

 

final—什么时候使用

1,因为安全的考虑,类的某个方法是不准被修改的

2,类不会被其他类继承

3,某些变量值是固定不变的,比如圆周率3.1415926.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值