力扣Hot100-final关键字,常量,抽象类(模板方法设计模式),接口

(一)final关键字

(2)常量

使用static final 修饰的成员变量被称为常量

作用:;通常用于记录系统的配置信息

注意:产量命名要求:单词大写,下划线连接多个单词

产量优势:

1.代码可读性好,可维护性高

(三)抽象类(abstract)

使用关键字abstract修饰的类,方法叫抽象类,抽象方法

注意:抽象方法必须在抽象类中实现

public abstract class A{

//抽象方法:必须abstract 修饰,只有方法签名,不能有方法体

public abstrct void test(); //这里不能加{ 。。。}等方法体

}

(四)抽象类的常见应用场景:模板方法设计模式 (面试,笔试,源码中会出现)

(1)场景:学生,老师都要写一篇作文:神经网络 第一段,最后一段相同 正文不同

未使用abstract时的学生类和老师类:

学生类:

java 复制代码
package Day2_Abstract;

public class Students {
    public void print(){
        System.out.println("\t\t《神经网络》");
        System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );
        System.out.println("实现过程包括:数据预处理,模型搭建,模型训练,模型评估,结果分析等~");
        System.out.println("神经网络对我们的生活影响巨大!!!");
    }
}

老师类:

java 复制代码
package Day2_Abstract;

public class Teacher {
    public void print(){
        System.out.println("\t\t《神经网络》");
        System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );
        System.out.println("常与PCA,决策树等方法结合使用");
        System.out.println("神经网络对我们的生活影响巨大!!!");
    }
}

(2)使用抽象类后:先定义一个共有的父类:

java 复制代码
package Day2_Abstract;

public abstract  class Father {
   /*设计模板方法设计模式
   1.定义一个模板方法:.
   * */
   public void print(){
       System.out.println("\t\t《神经网络》");
       System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );
    //2:模板方法并不清楚正文部分怎么写,但是它知道子类中要写,所以设计为一个抽象方法
       printmain();
       System.out.println("神经网络对我们的生活影响巨大!!!");
   }

   //3定义一个抽象方法写正文,具体实现交给子类
    public abstract void printmain();
}

学生类:

java 复制代码
package Day2_Abstract;

public class AbstractStudent extends Father{
    @Override
    public  void printmain(){
        System.out.println("实现过程包括:数据预处理,模型搭建,模型训练,模型评估,结果分析等~");
    }
}

老师类:

java 复制代码
package Day2_Abstract;

public class AbsractTeacher extends  Father{
    @Override
    public void printmain(){
        System.out.println("常与PCA,决策树等方法结合使用");
    }
}

进行测试test:

java 复制代码
package Day2_Abstract;

public class test {
    public static void main(String[] args) {
        //target:搞清楚抽象类的应用场景之一:设计模板方法模式
        //场景:学生,老师都要写一篇作文:神经网络
        //第一段,最后一段相同  正文不同
        Father s=new AbstractStudent();
        s.print();
    }
}

(四)接口

(1)接口中只能有成员变量和成员方法

(2)接口中成员变量默认是 常量

(3)接口中成员方法默认为抽象方法

public interface 接口名{

成员变量(常量)

//成员方法(抽象方法)

}

注意:接口不能被创建对象,接口是用来被类实现(implements)的,实现接口的类称为实现类

(4)实现类格式:

修饰符 class 实现类 implements 接口1,接口2,接口3,...{

}

(5)一个类可以实现多个接口,实现类实现多个接口,必须重写完全接口的全部出现方法,否则实现类需要定义为抽象类

定义一个接口B,C:

java 复制代码
package Interface.example;

public interface B {
    void testb1();

}
java 复制代码
package Interface.example;

public interface C {
    void testc1();

}

实现类D:

java 复制代码
package Interface.example;
//实现类
public class D implements B,C{
//未重写时会报错,Alt+回车 再回车即可实现重写

    @Override
    public void testb1() {

    }

    @Override
    public void testc1() {

    }
}

Test方法:

java 复制代码
package Interface.example;

public class Test1 {
    public static void main(String[] args) {
        //可以用实现类D来创建对象
        D d=new D();
        d.testb1();
    }
}
相关推荐
oioihoii1 天前
C++23 中 static_assert 和 if constexpr 的窄化布尔转换
java·jvm·c++23
jzshmyt1 天前
大内存生产环境tomcat-jvm配置实践
java·jvm·tomcat
左灯右行的爱情2 天前
JVM-类加载机制
jvm
左灯右行的爱情2 天前
深入理解 G1 GC:已记忆集合(RSet)与收集集合(CSet)详解
java·jvm·后端·juc
智商低情商凑2 天前
CAS(Compare And Swap)
java·jvm·面试
Mr__Miss3 天前
JVM学习笔记
jvm·笔记·学习
碎梦归途3 天前
23种设计模式-结构型模式之适配器模式(Java版本)
java·开发语言·jvm·单例模式·设计模式·适配器模式
江沉晚呤时3 天前
深入了解递归、堆与栈:C#中的内存管理与函数调用
java·jvm·算法
银河麒麟操作系统3 天前
【银河麒麟高级服务器操作系统】磁盘只读问题分析
java·linux·运维·服务器·jvm
爱的叹息3 天前
Java虚拟机(JVM)家族发展史及版本对比
java·开发语言·jvm