0917集合 抽象类和接口

集合

set

Set是最简单的一种集合。无序,并且没有重复对象。 Set接口主要实现了两个实现类:

  • HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
  • TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
  1. 不包含重复元素。(最大的特点)
  2. 这个集合存入元素的顺序和取出元素的顺序不一定一致。(具体的容器对象数据结构不同,顺序也有不同)

list

有序
它可以存储重复元素。

  • Arrylist 查询快 插入慢
  • Linkedlist 查询慢 插入快

抽象类

抽象方法:

就是加上abstract关键字,然后去掉大括号,直接分号结束。

抽象类:

抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。

如何使用抽象类和抽象方法:
  1. 不能直接创建new抽象类类对象。
  2. 必须用一个子类来继承抽象父类。
  3. 子类必须覆盖重写抽象父类当中所有的抽象方法。
  4. 覆盖重写(实现),子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
  5. 创建子类对象进行使用。
注意事项:
  1. 抽象类不能创建对象,如果创建,编译无法通过而报错,只能创建其非抽象子类的对象。
  2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
  3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类。

接口

  1. 接口就是多个类的公共规范
  2. 接口是一种引用数据类型,最重要的内容就是其中的,抽象方法

定义一个接口的格式:

public interface 接口名称{
	//接口名称
}
备注:换成了关键字interface之后,编译生成的字节码文件任然是.java–>.class
使用方法:
  1. 接口不能直接使用,必须有一个“实现类”来实现该接口
    public class 实现类名称 implements 接口名称{
    }
  2. 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
  3. 实现:去掉abstract关键字,加上方法体大括号
  4. 创建实现类的对象,进行使用。

如果是java7,那么接口中可以包含的内容有:
1.常量
成员变量其实是常量,格式:
[public][static][final]数据类型 常量名称=数据值;
注意:
常量必须进行赋值,而且一旦赋值不能改变。
常量名称完全大写,用下划线进行分割。

2.抽象方法 (最重要)格式:
[public][abstract]返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。

1.接口当中的抽象方法,修饰符必须是两个固定的关键字,public abstract
2.这两个关键字修饰符,可以选择性的省略

如果是Java8,还可以额外包含有:
3.默认方法 用来升级接口 格式:
[public] default 返回值类型 方法名称(参数列表){方法体}
注意:默认方法也可以被覆盖重写

4.静态方法 格式:
[public] static 返回值类型 方法名称(参数列表){方法体}
注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法。

如果是java9,还可以额外包含有:
5.私有方法
普通私有方法:private 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}。
注意:private的方法只有接口自己才能调用,不能被实现类或别人使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值