力扣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();
    }
}
相关推荐
薛之谦_5 小时前
Java 全栈知识体系:从 IDEA 高效开发到 JVM、并发与 Stream 实战
java·jvm·intellij-idea
jyOverQ10 小时前
从零学 JVM(六):垃圾回收算法详解——标记清除、标记复制与标记整理
jvm·算法
金銀銅鐵14 小时前
带您看懂字节码指令(三):一行加法里有什么
java·jvm
jyOverQ17 小时前
从零学 JVM(七):垃圾收集器详解——Serial、ParNew、Parallel、CMS 与 G1
java·jvm
金銀銅鐵1 天前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
jyOverQ1 天前
从零学 JVM(五):垃圾回收机制——对象存活判断与 GC Roots
jvm
金銀銅鐵2 天前
一个 4 个常量的枚举,Kotlin 在字节码里生成了什么
jvm·kotlin
2301_808414382 天前
Linux线程的同步与互斥
jvm
曲径海盗2 天前
Try-Except怎么用,3个追问解答在自动化下的应用
java·jvm·oracle
寂寞的船6 天前
【Unity知识速递】第10期 Unity GC 零分配实战:从 UnityEngine.Pool 到手动 GC 控制的全链路优化
jvm·unity·c#·游戏引擎·lucene