4月4号总结

java学习

一.接口

1.介绍

定义接口需要使用到关键字interface去定义接口。

格式如下:

类与接口的关系不是继承,而是实现,用关键字 implements ,格式如下:

这个类去实现接口,其中的关系就相当于,接口是类的“干爹”,因为类可以实现多个接口,而继承虽然可以多层继承,但是父类只能有一个,而接口作为“干爹”的关系可以有很多个。

一个类可以同时继承父类,也可以同时实现多个接口。

但是要分清楚主次关系,当亲爹与干爹有相同的方法名时,调用子类的方法会优先调用亲爹的方法。

public class test {
    public static void main(String[] args) {
        B.run();
    }
}


interface A {
static void run(){
    System.out.println("我是干爹");
}
}

class D{
    static void run()
    {
        System.out.println("我是亲爹");
    }
}

class B extends com.learn.java.D implements A{

}

2.特点

接口里面不能有成员变量,它会默认加上 public static final。

我们在定义的时候一定要赋初值,不然会报错。

   在JDK7.0版本及其之前版本中,接口中仅支持公有的抽象方法:

                public abstract 返回值类型 方法名();  

        Δ事实上,接口中的方法默认就是公有抽象方法,因此在接口中定义抽象方法时,可以省略掉abstract关键字。

   从JDK8.0开始,接口中可以由默认方法和静态方法:

                默认方法——public default 返回值类型 方法名() {

                }

                静态方法——public static 返回值类型 方法名() {

                }

       需要注意的是,想定义默认方法必须在前面添加default关键字,因为接口中的方法如果你什么都不写,默认是公有的抽象的方法。默认方法可以有方法体,且不需要实现类去实现,其实就是我们平时见到的普通的成员方法。但是默认方法是可以被实现类重写的。default关键字只能在接口中使用,就算实现类要重写默认方法,实现类中重写后的方法也不能添加default修饰符,不然IDEA报错。

        JDK9.0以后,接口中可以有私有方法 :

                private 返回值类型 方法名() {

                }

注意:接口不能被实例化,也就是不能创建对象。

接口的子类可以是抽象类,也可以是普通类(需要实现接口的所有方法)。

二.泛型

定义:泛型是Java编程语言中的一个特性,它允许在编写类、接口和方法时使用参数化类型。通过使用泛型,可以使得代码更加灵活、可重用,并提高类型安全性。

如果不使用泛型,集合可以加入任意类型的数据。

  ArrayList k=new ArrayList();
        k.add("12");
        k.add("1212");
        k.add(new Student());
        k.add(12);

并且不会报错,但是我们在处理数据时,有时需要将数据统一类型,在输出时。

虽然在写代码时没有报错,但是在运行会出现错误,所以我们需要给集合定义一个我们需要的泛型

这时就会在外面写代码的时候就发现错误。

总之,泛型是Java编程语言中的一项重要特性,它提供了一种灵活、类型安全的方式来处理不同类型的数据,并提高了代码的可重用性和可读性。

下面是泛型的一些特点:

  1. 参数化类型:泛型允许在类、接口或方法中使用参数,这些参数可以用于定义类型。这样一来,类、接口或方法可以与不同的数据类型进行交互。

  2. 类型安全:泛型在编译时提供类型检查,确保类型的一致性。这可以在编译时捕获一些类型错误,而不是在运行时出现异常。

  3. 代码重用:泛型提供了一种通用的方法来编写代码,可以在不同类型之间进行重用。这使得代码更加模块化和可维护。

  4. 减少类型转换:使用泛型可以减少代码中的类型转换,因为编译器会确保类型的一致性,不再需要手动转换类型。

  5. 提高可读性:泛型使得代码更加清晰易懂,因为可以直观地看出代码中使用的数据类型。

  6. 集合框架支持:Java集合框架中的大部分类都使用了泛型,例如 ArrayList<T>HashMap<K, V> 等。这使得集合中存储的元素类型更加明确,提高了代码的安全性和可读性。

  7. 自定义泛型类、接口和方法:除了使用Java标准库中提供的泛型类型外,开发人员还可以创建自己的泛型类、接口和方法,以满足特定需求。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 18:16:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 18:16:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 18:16:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 18:16:05       20 阅读

热门阅读

  1. tcp服务端,时刻在线

    2024-04-05 18:16:05       15 阅读
  2. ubuntu 安装配置samba服务器完整教程

    2024-04-05 18:16:05       13 阅读
  3. C 结构体

    2024-04-05 18:16:05       10 阅读
  4. 1.Swift基础控件:TableView列表

    2024-04-05 18:16:05       15 阅读
  5. Python数据分析与挖掘

    2024-04-05 18:16:05       17 阅读
  6. Linux C++ 019-多态

    2024-04-05 18:16:05       14 阅读
  7. 在国企特定的环境中,如何激励低效能员工?

    2024-04-05 18:16:05       14 阅读
  8. 梦想编码:0基础解锁IT世界的无限可能

    2024-04-05 18:16:05       16 阅读