其他分享
首页 > 其他分享> > 2022.07.26 第七小组 王茜 学习笔记

2022.07.26 第七小组 王茜 学习笔记

作者:互联网

 

   抽象   

     面向对象的特征:抽象
          abstract 抽象
     抽象方法:
          public abstract void eat();

 

抽象方法必须在一个抽象类里

 1、当定义一个抽象类时,具有以下结构:
       属性,成员方法,构造器,抽象方法,常量
   2、抽象类可以没有抽象方法
   3、抽象类是不能被直接实例化的,需要依靠子类采用向上转型的方式处理
        抽象类不能创建对象
   4、抽象类的构造器存在的意义:
        为了约定子类的构造器和必须和父类的匹配
   5、一个类如果继承了一个抽象类,就必须重写这个抽象类的所有的抽象方法
       子类如果不是抽象类,则必须重写抽象类中的所有抽象方法

 abstract能修饰什么?
      类、方法
  抽象方法不能用private修饰,开发中基本上用public
  抽象方法不能用final修饰

抽象类不能用final修饰,因为用final修饰的类是不能被继承的

 

   接口   

接口:比抽象类更高级的抽象
 声明:interface关键字,public  interface  Ch02
 JDK1.7之前:接口中只能定义抽象方法,不能有属性,不能有方法
          (静态的常量)
 JDK8及以后:接口中只能定义抽象类方法,不能有属性,可以有默认的方法和静态的常量
 JDK7------JDK8:默认方法,静态方法

 接口中结构的特点:
 接口中的抽象方法默认是public abstract  推荐省略
 接口中的常量默认是public static  final  推荐省略
 接口中的结构必须是public

 接口可以被实现
 如果一个类实现了一个接口,他就需要重写接口中的所有的抽象方法

 实现接口是可以多实现的,继承只能单继承
 面试题:
 1、继承抽象类和实现接口的异同
 2、抽象类和接口的区别
 3、Java中只有单继承?NO
 在Java中是存在多继承的,发生在接口之间

接口存在的意义:
 约定。

   总结   

  1、抽象abstract关键字
       抽象类的特点
       abstract能修饰哪些结构
       抽象方法的特点
  2、接口。JDK7-JDK8的有什么改变
  3、面试题:继承类和实现接口的异同?抽象类和接口的区别
  4、多态的补充说明。
  5、匿名实现类
  重点:结合多态,参数的传递,配合instanceof使用
 
  在能够使用多态表示对象的时候,尽量使用多态。
 
  栈和队列
  建立在两个最基础的数据结构的基础上构建的两个受限制的线性表
 
  面向对象四大特征:
  封装,继承,多态,(抽象)

类型题:(银行取票机)

import java.util.Scanner;

/**
 * 银行取票机
 */
public class BankTicketMachine {

    // 需要一个队列结构
    private Queue queue = new Queue();

    // 银行的小票起始号
    private int startNumber = 100;

    private Scanner scanner = new Scanner(System.in);

    // 取票
    public Integer getTicket(){
        if(queue.empty()){
            System.out.println("号码已经全部领取,需要继续释放号码!");
            System.out.println("请输入释放号码的个数:");
            Integer number = scanner.nextInt();
            pushTicket(number);
        }
        return queue.poll();
    }

    // 排队
    public void pushTicket(int ticketNumber){
        for (int i = 0;i < ticketNumber;i++){
            startNumber += 1;
            queue.add(startNumber);
        }
    }
    public void run() {
        while(true) {
            System.out.println("请输入您的名字:");
            String name = scanner.next();
            Integer ticket = getTicket();
            System.out.println("尊敬的【"+ name+ "】,您的号码是:" + ticket + "。");
        }
    }

    public static void main(String[] args) {
//        BankTicketMachine bankTicketMachine = new BankTicketMachine();
        new BankTicketMachine().run();
    }
}

标签:26,abstract,接口,抽象,2022.07,抽象类,方法,public,王茜
来源: https://www.cnblogs.com/wx1019/p/16522158.html