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 0000000000000000000000000000000000000000..320698327469452ded04e757f22815a5a0fa7bc2 --- /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 c2c2f13b9823556c9a7a42f6c73b16bca97cc723..f6a826d71a4cb44ba803dea93ca428cbbf71b8ac 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 0000000000000000000000000000000000000000..af067a13f1efdcac379401dddafd8f1dbbd7cc32 --- /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 0000000000000000000000000000000000000000..a523b8d5aeeea6028f7892a8c68ab76b4979a84c --- /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 0000000000000000000000000000000000000000..9105fa43f07ecd2c4bf130fde918da39f7d1e111 --- /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 0000000000000000000000000000000000000000..0bbbff42a7ebce6ab2f42a0d030d4ba186189185 --- /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 0000000000000000000000000000000000000000..8b8710677feee5ccab7632c779a8f42d2aa00062 --- /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