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

(一)final关键字

(2)常量

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

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

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

产量优势:

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

(三)抽象类(abstract)

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

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

public abstract class A{

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

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

}

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

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

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

学生类:

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("神经网络对我们的生活影响巨大!!!");
    }
}

老师类:

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)使用抽象类后:先定义一个共有的父类:

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();
}

学生类:

package Day2_Abstract;

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

老师类:

package Day2_Abstract;

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

进行测试test:

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:

package Interface.example;

public interface B {
    void testb1();

}
package Interface.example;

public interface C {
    void testc1();

}

实现类D:

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

    @Override
    public void testb1() {

    }

    @Override
    public void testc1() {

    }
}

Test方法:

package Interface.example;

public class Test1 {
    public static void main(String[] args) {
        //可以用实现类D来创建对象
        D d=new D();
        d.testb1();
    }
}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半截詩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值