• Java抽象类和普通类区别、 数组跟List的区别


    接口

    在Java中,接口(Interface)是一种抽象类型,它定义了一组方法的签名,但没有具体的实现。接口可以被类实现(implements),从而使类具备接口中定义的方法。

    具有以下特点:

    1. 接口中的所有方法都是抽象方法,没有方法体,只有方法签名。因此,接口只定义了方法的规范,而不提供具体的实现。
    
    2. 接口中的所有变量都是常量,即使用final修饰的变量,且必须在声明时进行初始化。
    
    3. 接口中可以定义默认方法和静态方法。默认方法是指在接口中提供了一个默认的实现,而静态方法是指在接口中定义的静态方法。
    
    4. 接口中不能定义构造方法,因为接口不能被实例化。
    
    5. 一个类可以实现多个接口,从而具有多个接口的特性。
    
    6. 接口可以被继承,一个接口可以继承多个接口,从而形成接口的继承树。
    
    7. 接口中的方法默认是public访问权限,变量默认是public static final访问权限。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    接口和抽象类的区别

    Java中的接口和抽象类都是用来实现多态性的机制,但它们有一些区别:

    1. 实现方式:接口只能定义方法的签名,而抽象类可以定义方法的实现。
    
    2. 继承:一个类只能继承一个抽象类,但可以实现多个接口。
    
    3. 构造函数:抽象类可以有构造函数,而接口不能有构造函数。
    
    4. 访问修饰符:接口中的方法默认为public,而抽象类中的方法可以有不同的访问修饰符。
    
    5. 变量:接口中只能定义常量,而抽象类可以定义变量。
    
    6. 实现:实现接口的类必须实现接口中的所有方法,而继承抽象类的子类可以选择性地实现抽象类中的方法。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    总之,接口和抽象类都是实现多态性的机制,但它们的使用场景不同。接口通常用于定义类之间的协议,而抽象类通常用于定义一些通用的行为和属性。


    抽象类

    Java中的抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类通常用于定义一些通用的属性和方法,但是这些方法的具体实现需要在子类中完成。抽象类中可以包含抽象方法和非抽象方法。

    抽象方法是一种没有实现的方法,只有方法的声明,没有方法体。抽象方法必须在抽象类中声明,而且子类必须实现这些抽象方法。如果子类没有实现抽象方法,那么子类也必须声明为抽象类。

    抽象类的子类必须实现抽象类中的所有抽象方法,否则子类也必须声明为抽象类。子类可以继承抽象类中的非抽象方法,也可以重写这些方法。

    抽象类的方法特性包括:

    1. 抽象方法必须在抽象类中声明,而且没有方法体。
    
    2. 抽象类可以包含非抽象方法,这些方法可以被子类继承或重写。
    
    3. 抽象类不能被实例化,只能被继承。
    
    4. 抽象类的子类必须实现抽象类中的所有抽象方法,否则子类也必须声明为抽象类。
    
    5. 抽象类可以有构造方法,但是不能被直接调用,只能被子类调用。
    
    6. 抽象类可以有静态方法和静态变量,但是不能被子类继承或重写。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    抽象类跟普通类的区别

    有以下几个区别:

    1. 实例化:普通类可以直接实例化对象,而抽象类不能被实例化。抽象类只能作为父类被继承,子类必须实现抽象类中的抽象方法才能被实例化。
    
    2. 抽象方法:抽象类中可以包含抽象方法,而普通类不可以。抽象方法是一种没有具体实现的方法,只有方法的声明,没有方法体。子类继承抽象类后,必须实现抽象类中的所有抽象方法。
    
    3. 继承:普通类可以单独继承其他类,而抽象类只能作为父类被继承。一个类只能继承一个抽象类,但可以同时继承一个抽象类和其他普通类。
    
    4. 多态性:抽象类可以通过多态性的特性,引用指向子类对象。这样可以实现对不同子类对象的统一操作。而普通类没有多态性的特性。
    
    5. 实现细节:普通类可以包含属性、方法和构造函数等实现细节,而抽象类可以包含属性、方法、构造函数和抽象方法等实现细节。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    总的来说,抽象类是一种特殊的类,用于定义一组相关的类的共同特征和行为,强制子类实现抽象方法。而普通类是一种具体的类,可以直接实例化对象,并且可以包含具体的实现细节。


    数组

    Java中的数组是一种用于存储多个相同类型数据的数据结构。它是一个固定长度的容器,可以在其中存储同一类型的数据。数组在Java中是一个对象,可以通过索引访问其中的元素。

    在Java中,数组的声明需要指定数组的类型和长度。使用以下语法定义一个数组:

    数据类型[] 数组名 = new 数据类型[数组长度];
    
    • 1

    其中,数据类型表示数组中元素的数据类型,数组名是数组的名称,数组长度表示数组中元素的数量。

    例如,定义一个包含5个整数的数组可以使用以下代码:

    int[] numbers = new int[5];
    
    • 1

    会创建一个名为numbers的整数数组,其中包含5个元素。

    除了基本类型的数组,Java还支持引用类型的数组。例如,可以创建一个存储字符串的数组:

    String[] names = new String[3];
    names[0] = "luxifa";
    names[1] = "degula";
    
    • 1
    • 2
    • 3

    数组常用方法:

    1. length:返回数组的长度,无参数。
    
    2. clone:复制一个数组,无参数。
    
    3. toString:将数组转换为字符串,无参数。
    
    4. equals:比较两个数组是否相等,参数为另一个数组。
    
    5. sort:对数组进行排序,可以有一个可选的参数Comparator6. binarySearch:在已排序的数组中查找指定元素,可以有一个可选的参数Comparator7. fill:将数组的所有元素都设置为指定值,可以有两个可选的参数,指定起始和结束位置。
    
    8. copyOf:复制一个数组,可以有一个可选的参数,指定新数组的长度。
    
    9. copyOfRange:复制一个数组的一部分,可以有两个可选的参数,指定起始和结束位置。
    
    10. asList:将数组转换为List,无参数。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    List是一个接口,它定义了一些常用的方法,包括:

    1. add(E e):将元素e添加到列表的末尾。
    2. add(int index, E element):将元素element插入到指定的位置index。
    3. remove(int index):删除指定位置的元素。
    4. remove(Object o):删除列表中第一个出现的指定元素。
    5. get(int index):返回指定位置的元素。
    6. set(int index, E element):用指定的元素替换列表中指定位置的元素。
    7. size():返回列表中元素的数量。
    8. clear():删除列表中的所有元素。
    9. isEmpty():如果列表中没有元素,则返回true10. contains(Object o):如果列表中包含指定的元素,则返回true11. indexOf(Object o):返回列表中第一个出现指定元素的位置。
    12. lastIndexOf(Object o):返回列表中最后一个出现指定元素的位置。
    13. subList(int fromIndex, int toIndex):返回列表中指定范围内的部分元素。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这些方法可以帮助我们对List进行常见的操作,例如添加、删除、修改、查询等。

    数组跟List的区别

    Java中数组和List是两种不同的数据结构。

    1. 数组是一种固定长度的数据结构,它可以存储相同类型的元素。数组在创建时需要指定长度,并且长度不能改变。数组可以通过索引访问和修改元素,具有快速的随机访问能力。例如,int[] arr = new int[5]; 表示创建一个长度为5的整型数组。
    
    2. ListJava集合框架中的一种接口,它可以动态地调整大小,并且可以存储不同类型的元素。List接口的常见实现类有ArrayListLinkedListList可以通过索引访问和修改元素,也可以通过添加、删除等方法对元素进行操作。例如,List<Integer> list = new ArrayList<>(); 表示创建一个整型ArrayList
    • 1
    • 2
    • 3

    List的定义方式有以下几种:

    1. 使用ArrayList类实现:
       List<Integer> list = new ArrayList<>();
    
    2. 使用LinkedList类实现:
       List<String> list = new LinkedList<>();
    
    3. 使用Vector类实现:
       List<Double> list = new Vector<>();
    
    4. 使用Stack类实现:
       List<Character> list = new Stack<>();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    其中,List是一个接口,不能直接实例化,需要使用具体的实现类来创建对象。

  • 相关阅读:
    ASP.NET Core Web API Action方法参数
    Android 处理WebView not install(源码分析定位)
    halcon实时采集数据
    node开发微信群聊机器人第④章
    saltstack运维工具包salt-api代码记录
    第12期 | GPTSecurity周报
    25. K 个一组翻转链表 --力扣 --JAVA
    js三元表达式复杂条件判断
    python 笔记:打开nii格式(nibabel 库)
    前端vue element axios混编团队发送数据到后端,后端接受使用的是$_POST
  • 原文地址:https://blog.csdn.net/weixin_42594143/article/details/133159986