From 8da93fa501ec1adbe8483072095c192b94f2eaa8 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 25 Jan 2026 11:21:21 +0800 Subject: [PATCH] =?UTF-8?q?day09-=E6=8E=A5=E5=8F=A3=E5=92=8C=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=B1=BB=E7=9A=84=E5=A4=9A=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../duotai08/interface_duotai/Demo12.java | 23 +++++++++++++++++++ .../interface_duotai/MyInterface.java | 5 ++++ .../interface_duotai/MyInterfaceImpl.java | 13 +++++++++++ 3 files changed, 41 insertions(+) create mode 100644 day10/src/com/inmind/duotai08/interface_duotai/Demo12.java create mode 100644 day10/src/com/inmind/duotai08/interface_duotai/MyInterface.java create mode 100644 day10/src/com/inmind/duotai08/interface_duotai/MyInterfaceImpl.java diff --git a/day10/src/com/inmind/duotai08/interface_duotai/Demo12.java b/day10/src/com/inmind/duotai08/interface_duotai/Demo12.java new file mode 100644 index 0000000..c96fd50 --- /dev/null +++ b/day10/src/com/inmind/duotai08/interface_duotai/Demo12.java @@ -0,0 +1,23 @@ +package com.inmind.duotai08.interface_duotai; +/* +接口和实现类的多态 + +多态的前提: +1.继承或实现 +2.重写 +3.父类引用指向子类对象 + */ +public class Demo12 { + public static void main(String[] args) { + MyInterfaceImpl myInterface = new MyInterfaceImpl();//是不是多态???不是 + //多态的格式:父类引用指向子类对象 + //接口中的多态格式:接口类型 对象名 = new 实现类类型(); + MyInterface myInterface1 = new MyInterfaceImpl();//多态的写法,向上转型 + myInterface1.show();//编译看左边,运行看右边 + //但是我就想要调用实现类的show1方法,那怎么办??? + if (myInterface1 instanceof MyInterfaceImpl) {//为了类型转换时,避免出现类型转换异常,先判断类型 + MyInterfaceImpl m = (MyInterfaceImpl)myInterface1; //向下转型 + m.show1(); + } + } +} diff --git a/day10/src/com/inmind/duotai08/interface_duotai/MyInterface.java b/day10/src/com/inmind/duotai08/interface_duotai/MyInterface.java new file mode 100644 index 0000000..95a8740 --- /dev/null +++ b/day10/src/com/inmind/duotai08/interface_duotai/MyInterface.java @@ -0,0 +1,5 @@ +package com.inmind.duotai08.interface_duotai; + +public interface MyInterface { + public abstract void show(); +} diff --git a/day10/src/com/inmind/duotai08/interface_duotai/MyInterfaceImpl.java b/day10/src/com/inmind/duotai08/interface_duotai/MyInterfaceImpl.java new file mode 100644 index 0000000..bdcd59a --- /dev/null +++ b/day10/src/com/inmind/duotai08/interface_duotai/MyInterfaceImpl.java @@ -0,0 +1,13 @@ +package com.inmind.duotai08.interface_duotai; + +public class MyInterfaceImpl implements MyInterface{ + @Override + public void show() { + System.out.println("实现类的show方法"); + } + + + public void show1() { + System.out.println("实现类的show1方法"); + } +}