韩顺平 java笔记 第13讲 第14讲 第15讲 抽象类 接口 final

1.抽象类/抽象方法

  当父类的一些方法不能确定时,可以用abstract来修饰该方法

  abstract class Animal{

    String name;

    int age;

    abstract public void cry();

  }

  class Cat extends Animal{

    public void cry(){//当一个类继承的父类是抽象类的话,需要我们把抽象类中所有方法全部实现

    }

  }

  注:抽象类不能被实例化  Animal an = new Animal();  错

    抽象类不一定要包含abstract 方法,可以有实现了的方法

    一旦包含了abstract 方法,则这个类必须声明为abstract

    抽象方法不能有主体  abstract  ppublic  void  cry(){}  错

2.接口 interface implements

  接口就是给出一些没有内容的方法,封装到一起,到某个类需要用的时候,再根据具体情况把这些方法写出来

  注:接口不能被实例化

    接口中所有的方法都不能有主体 void main(){};

    一个类可以实现多个接口

    接口中可以有变量(变量不能用private 和protected修饰)

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

    b.经常把常用的变量,定义在接口中,作为全局变量使用 访问 接口名 变量名

    一个接口不能继承其他的类,但是可以继承别的接口

    当一个类实现接口,要求该类把这个接口的方法统统实现。

      interface Usb{

      int a=1;  int a;错

      public void start();

      public void stop();

      }

    interface Aaa{

      public void Eee();

    }

    interface kkk extends Aaa{

      public void Cry();

    }

    class camera implements Usb{

      public void start(){}

      public void stop(){}

    }

    class Phone implements Usb,Kkk{

      public void start(){}

      public void stop(){}

      public void cry(){}

      public void Eee(){}

    }

    class Computer{

      public void useUsb(Usb usb){

        Usb.start();

        Usb.stop();

      }

    }

    Computer computer = new Computer();

    Camera camera = new Camera();

    Phone phone = new Phone();

    computer.useUsb(camera);

    computer.useUsb(phone);

*********class littleMonkey extends Monkey implements Fish,Bird{}

3.

  interface Car{

    String getName();

    int getPrice();  

  }

  class BWM implements Car{

    public String getName(){

      return "BWM";

    }

    public int getPrice(){

      return 3000;

    }

  }

  class Chery implements Car{

    public String getName(){

      return "Chery";

    }

    public int getPrice(){

      return 2000;

    }

  }

  public class CarShop{

    private int money = 0;

    public void sellCar(Car car){

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

      monkey+=car.getPrice();

    }

    public int getMoney(){

      return money;

    }

    public static void main(String[] args){

      CarShop shop = new CarShop();

      shop.sellCar(new BWM());

      shop.sellCar(new Chery());

      System.out.println("总收入:" + shop.getMoney());

    }

  }

4.final

  不希望父类的某个方法被子类覆盖

  不希望某个变量值被修改  final 修饰必须给初值

  不希望类别覆盖

 

转载于:https://www.cnblogs.com/wangxiaoli/p/8548607.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值