From 4c08e64e1f705236e5056b2f8d049317add5ac5d Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 23 May 2026 13:24:00 +0800 Subject: [PATCH] =?UTF-8?q?day09-=E6=8A=BD=E8=B1=A1=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=92=8C=E6=8A=BD=E8=B1=A1=E7=B1=BB=E7=9A=84=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day09/src/com/inmind/abstract05/Animal.java | 5 +++++ day09/src/com/inmind/abstract05/Cat.java | 10 ++++++++++ day09/src/com/inmind/abstract05/Demo06.java | 16 ++++++++++++++++ day09/src/com/inmind/abstract05/Dog.java | 14 ++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 day09/src/com/inmind/abstract05/Cat.java create mode 100644 day09/src/com/inmind/abstract05/Dog.java diff --git a/day09/src/com/inmind/abstract05/Animal.java b/day09/src/com/inmind/abstract05/Animal.java index 3aea8bf..5db1900 100644 --- a/day09/src/com/inmind/abstract05/Animal.java +++ b/day09/src/com/inmind/abstract05/Animal.java @@ -6,6 +6,11 @@ package com.inmind.abstract05; */ public abstract class Animal { + public Animal(){ + System.out.println("抽象类Animal的构造方法"); + } + + //动物吃的方法 public abstract void eat(); diff --git a/day09/src/com/inmind/abstract05/Cat.java b/day09/src/com/inmind/abstract05/Cat.java new file mode 100644 index 0000000..91b8daa --- /dev/null +++ b/day09/src/com/inmind/abstract05/Cat.java @@ -0,0 +1,10 @@ +package com.inmind.abstract05; + +public class Cat extends Animal{ + + + @Override + public void eat() { + System.out.println("猫吃鱼"); + } +} diff --git a/day09/src/com/inmind/abstract05/Demo06.java b/day09/src/com/inmind/abstract05/Demo06.java index dfdee27..ec338d9 100644 --- a/day09/src/com/inmind/abstract05/Demo06.java +++ b/day09/src/com/inmind/abstract05/Demo06.java @@ -1,6 +1,22 @@ package com.inmind.abstract05; /* +如何使用抽象类和抽象方法??? +1.抽象类不能被创建对象的,只能通过子类创建对象 +2.非抽象的子类,必须实现重写抽象类中的抽象方法 +3.创建子类对象,调用对应方法 +注意事项: +1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象 +2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的 +3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 +4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。 */ public class Demo06 { + public static void main(String[] args) { + //Animal animal = new Animal(); + Dog dog = new Dog(); + dog.eat(); + Cat cat = new Cat(); + cat.eat(); + } } diff --git a/day09/src/com/inmind/abstract05/Dog.java b/day09/src/com/inmind/abstract05/Dog.java new file mode 100644 index 0000000..659a679 --- /dev/null +++ b/day09/src/com/inmind/abstract05/Dog.java @@ -0,0 +1,14 @@ +package com.inmind.abstract05; + +public class Dog extends Animal{ + + //编译器主动添加默认无参构造 + public Dog(){ + super(); + } + + @Override + public void eat(){ + System.out.println("狗吃骨头"); + }; +}