From aaa61e68b2bf025b4c2b9afc06e20f67f96519be Mon Sep 17 00:00:00 2001 From: xiaoyu Date: Tue, 7 Dec 2021 13:42:59 +0800 Subject: [PATCH] add abstract interface --- .../demo/controller/AbstractController.java | 31 +++++++++++++++++++ .../demo/controller/ClassController.java | 2 -- .../com/example/demo/tool/CatAbstract.java | 20 ++++++++++++ .../com/example/demo/tool/CatInterface.java | 11 +++++++ .../com/example/demo/tool/CatInterface2.java | 8 +++++ .../com/example/demo/tool/TianjinCat.java | 22 +++++++++++++ .../java/com/example/demo/tool/TjCat.java | 21 +++++++++++++ 7 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/example/demo/controller/AbstractController.java create mode 100644 src/main/java/com/example/demo/tool/CatAbstract.java create mode 100644 src/main/java/com/example/demo/tool/CatInterface.java create mode 100644 src/main/java/com/example/demo/tool/CatInterface2.java create mode 100644 src/main/java/com/example/demo/tool/TianjinCat.java create mode 100644 src/main/java/com/example/demo/tool/TjCat.java diff --git a/src/main/java/com/example/demo/controller/AbstractController.java b/src/main/java/com/example/demo/controller/AbstractController.java new file mode 100644 index 0000000..3206983 --- /dev/null +++ b/src/main/java/com/example/demo/controller/AbstractController.java @@ -0,0 +1,31 @@ +package com.example.demo.controller; + +import com.example.demo.tool.TianjinCat; +import com.example.demo.tool.TjCat; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 抽象 + */ +@RestController +@RequestMapping("/") +public class AbstractController { + + @GetMapping("/abstract") + public void abstractDemo(){ + TjCat tjCat = new TjCat(); + tjCat.run(); + tjCat.jump(); + tjCat.kuaiban(); + } + + @GetMapping("/interface") + public void interfaceDemo(){ + TianjinCat tianjinCat = new TianjinCat(); + tianjinCat.eat(); + tianjinCat.jump(); + tianjinCat.run(); + } +} diff --git a/src/main/java/com/example/demo/controller/ClassController.java b/src/main/java/com/example/demo/controller/ClassController.java index c2c2f13..f6a826d 100644 --- a/src/main/java/com/example/demo/controller/ClassController.java +++ b/src/main/java/com/example/demo/controller/ClassController.java @@ -33,7 +33,5 @@ public class ClassController { String catName = ragdollCat.formatName(); System.out.print(catName); System.out.print("\r\n"); - - System.out.print } } diff --git a/src/main/java/com/example/demo/tool/CatAbstract.java b/src/main/java/com/example/demo/tool/CatAbstract.java new file mode 100644 index 0000000..af067a1 --- /dev/null +++ b/src/main/java/com/example/demo/tool/CatAbstract.java @@ -0,0 +1,20 @@ +package com.example.demo.tool; + +/** + * 猫的抽象类 + */ +abstract class CatAbstract { + + //构造函数 + CatAbstract(){ + System.out.print("我是抽象类的构造函数\r\n"); + } + + abstract public void jump(); //抽象方法,没有具体实现 + + public void run(){ + System.out.print("我是抽象类的函数,跑起来了!\r\n"); + } + + +} diff --git a/src/main/java/com/example/demo/tool/CatInterface.java b/src/main/java/com/example/demo/tool/CatInterface.java new file mode 100644 index 0000000..a523b8d --- /dev/null +++ b/src/main/java/com/example/demo/tool/CatInterface.java @@ -0,0 +1,11 @@ +package com.example.demo.tool; + +/** + * 猫的接口类 + */ +interface CatInterface { + + void run(); //由于必须所有方法都是public,所以public没必要写上 + + void jump(); +} diff --git a/src/main/java/com/example/demo/tool/CatInterface2.java b/src/main/java/com/example/demo/tool/CatInterface2.java new file mode 100644 index 0000000..9105fa4 --- /dev/null +++ b/src/main/java/com/example/demo/tool/CatInterface2.java @@ -0,0 +1,8 @@ +package com.example.demo.tool; + +interface CatInterface2 { + + int tailNum = 1; + + void eat(); +} diff --git a/src/main/java/com/example/demo/tool/TianjinCat.java b/src/main/java/com/example/demo/tool/TianjinCat.java new file mode 100644 index 0000000..0bbbff4 --- /dev/null +++ b/src/main/java/com/example/demo/tool/TianjinCat.java @@ -0,0 +1,22 @@ +package com.example.demo.tool; + +/** + * 接口类的实现,支持实现多接口 + */ +public class TianjinCat implements CatInterface,CatInterface2 { + @Override + public void run() { + System.out.print("我可跑了啊\r\n"); + } + + @Override + public void jump() { + System.out.print("我有"+ String.valueOf(tailNum) +"条尾巴!\r\n"); + System.out.print("我可跳了啊\r\n"); + } + + @Override + public void eat() { + System.out.print("我可吃了啊\r\n"); + } +} diff --git a/src/main/java/com/example/demo/tool/TjCat.java b/src/main/java/com/example/demo/tool/TjCat.java new file mode 100644 index 0000000..8b87106 --- /dev/null +++ b/src/main/java/com/example/demo/tool/TjCat.java @@ -0,0 +1,21 @@ +package com.example.demo.tool; + +/** + * 天津猫是抽象猫的实现,我家的猫就是从天津拿来的 + */ +public class TjCat extends CatAbstract { + + @Override + public void jump() { + System.out.print("我可跳了啊\r\n"); + } + + public void kuaiban(){ + System.out.print("我可会打快板\r\n"); + } + + @Override + public void run() { + super.run(); + } +} \ No newline at end of file -- GitLab