其他分享
首页 > 其他分享> > 2022-07-26 第四组 王佳齐 学习笔记

2022-07-26 第四组 王佳齐 学习笔记

作者:互联网

思维导图

 

 

学习笔记

抽象

Java中除了类之外还有抽象类和接口

 

关键字

abstract:抽象

用抽象关键字修饰的方法叫做抽象方法【没有大括号没

有方法体】

能修饰什么?

类,方法

 

 

抽象方法存在的意义是什么?

根本意义:约定【我们自定义的规则】

抽象方法到底约定了什么,规定了什么,定了那些规

则?

约定了返回值,访问权限,参数列表,需要在重写的时

候去定义方法体

 

 

约定大于配置,配置大于编码

 

抽象方法必须在抽象类里

1.当我们定义了一个抽象类,这个抽象类中可以有那些

结构?

属性,成员方法,构造器,抽象方法,常量。

2.抽象类中能不能没有抽象方法?

可以。

3.抽象类不能被实例化,抽象类不能创建对象。

4.抽象类的构造器存在的意义?

为了约定子类的构造器必须和夫类匹配

5.一个类如果继承了一个抽象类,就必须重写这个抽象

类的所有抽象方法。

抽象方法能不能用private修饰?

不能。开发中,抽象方法基本上都是public。

抽象方法能不能用final修饰?

不能。用final修饰的方法不能被重写。

抽象类能不能被final修饰?

不能。被final修饰的类是不允许被继承的。

 

1.抽象方法必须是public和protected,因为如果是

private是不能被子类继承的,子类就无法实现该方

法,默认情况下是可以的,默认情况其实就是public。

2.抽象类不能直接被实例化,需要依靠子类采用向上转

型的方式实现

3.抽象类必须有子类,使用extends继承,一个类只能

继承一个抽象类

4.子类如果不是抽象类,就必须重写所有抽象方法

5.如果子类没有实现父类的抽象方法,则子类必须加上

abstrant关键字修饰

抽象类可以继承抽象类,且不用重写

 

 

接口

抽象类是比类更高级的抽象

比抽象类更高级的抽象就叫接口

接口的声明:使用interface关键字声明,public

interface Ja01

接口中只能定义抽象方法,不能有属性,不能有方法,

只能有抽象方法,还有静态常量和静态/默认方法。

JDK8比JDK7多了默认方法和静态方法

接口中结构的特点

接口中的抽象方法默认是 public abstract,推荐省略

接口中的常量默认是public static final,推荐省略

接口中的结构必须是public

 

接口可以被实现,实现类

如果 类A implement 接口,就说类A是这个接口的实

现类。

如果一个类实现了一个接口,那么就要重写这个接口里

所有的抽象类。

实现接口可以多实现【接口之间用,隔开】,但是继承

只能单继承。

我们在开发中,如果一件事情可以通过继承和实现接口

解决,优先选择使用接口解决。

 

接口存在的意义?

约定。

面向接口编程,面向切面编程,面向对象编程

面向接口编程:我主要写接口

 

面试题

1.继承抽象类和实现接口的异同

抽象类只能单继承,接口可以多实现

2.抽象类和接口的区别

抽象类实际上与普通类没有太大区别,多了个抽象方法

抽象类可以放

 

面试题

在JAVA中只有单继承?

在JAVA中存在多继承的,发生在接口之间

在JAVA类与类之间确实只有单继承

 

匿名实现类

 1 package com.jsoft.afternoon;
 2 
 3 /**
 4  * 匿名实现类
 5  *
 6  */
 7 public class Ch01 {
 8 
 9     public static void main(String[] args) {
10         Ch01 ch01 = new Ch01();
11         System.out.println("ch01=" + ch01);
12         Abstr01 a01 = new Abstr01() {
13             @Override
14             public void show() {
15                 System.out.println("重写过后的show方法...");
16             }
17         };
18         a01.show();
19         Abstr01 abstr02 = new Ch02();
20         System.out.println(a01);
21         Inter01 inter01 = new Inter01() {
22             @Override
23             public void eat() {
24                 System.out.println("重写过后的eat方法...");
25             }
26         };
27 
28     }
29 }

 

栈和队列

是两种操作受限的线性表,这种受限表现在

栈的插入和删除只允许在表的尾端进行(在栈中叫做栈顶:最后进来的)满足FILO First In Last Out

队列只允许在表尾2插入元素,在表头删除元素,FIFO First In First Out

队列与栈的相同点

1.都是线性结构

2.插入操作都是在表尾进行

3.都可以通过顺序结构和链式结构实现

栈与队列不同点

1.队列:先进先出 栈:先进后出

 

 

 

总结

1.抽象abstact关键字

抽象类的特点abstact能修饰哪些结构

抽象方法的特点

2.接口:从JDK7到8有什么改变

3.面试题

继承类和实现接口的异同?抽象类和接口的区别

4.多态的补充说明

5.匿名实现类

重点:结合多态,传参,配合instanceof使用

 

栈和队列

建立在两个最基础的数据结构的基础上构建的两个受限制的线性表

 

学习心得:

今天主要学习了抽象和接口,队列与栈。抽象和接口的例子听的不是太明白,匿名类满足继承的那个多态没明白。

标签:26,07,继承,接口,public,抽象,第四组,方法,抽象类
来源: https://www.cnblogs.com/yiboxh-10000/p/16522436.html