力扣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();
    }
}
相关推荐
1.01^100015 小时前
[5-01-01].第04节:初识字节码文件 - 字节码文件作用
jvm
找不到、了18 小时前
JVM核心知识整理《1》
jvm
L.EscaRC20 小时前
面向 Spring Boot 的 JVM 深度解析
jvm·spring boot·后端
学到头秃的suhian2 天前
JVM-类加载机制
java·jvm
NEFU AB-IN2 天前
Prompt Gen Desktop 管理和迭代你的 Prompt!
java·jvm·prompt
唐古乌梁海2 天前
【Java】JVM 内存区域划分
java·开发语言·jvm
众俗2 天前
JVM整理
jvm
echoyu.2 天前
java源代码、字节码、jvm、jit、aot的关系
java·开发语言·jvm·八股
代码栈上的思考3 天前
JVM中内存管理的策略
java·jvm
thginWalker3 天前
深入浅出 Java 虚拟机之进阶部分
jvm