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