From 1997cf8be2040955a034159e19840c0385cf4338 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 25 Jul 2026 15:52:53 +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/abstract07/Animal.java | 25 +++++++++++++++++++ day09/src/com/inmind/abstract07/Cat.java | 11 ++++++++ day09/src/com/inmind/abstract07/Demo07.java | 23 +++++++++++++++++ day09/src/com/inmind/this_super06/Demo06.java | 4 +++ day09/src/com/inmind/this_super06/Zi.java | 4 +-- 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 day09/src/com/inmind/abstract07/Animal.java create mode 100644 day09/src/com/inmind/abstract07/Cat.java create mode 100644 day09/src/com/inmind/abstract07/Demo07.java diff --git a/day09/src/com/inmind/abstract07/Animal.java b/day09/src/com/inmind/abstract07/Animal.java new file mode 100644 index 0000000..043bf75 --- /dev/null +++ b/day09/src/com/inmind/abstract07/Animal.java @@ -0,0 +1,25 @@ +package com.inmind.abstract07; +/* + 当一个方法的具体功能,我们无法实现,那么就不要写方法体,abstract修饰,就是抽象方法 + 拥有抽象方法的类,也就是一个抽象类 + + 抽象类的格式: + public abstract class 类名{ + public abstract void 方法名(参数列表); + } + */ +//抽象类 +public abstract class Animal { + int age; + String name; + + + public Animal(){ + System.out.println("抽象类的无参构造执行了"); + } + + //抽象方法 + public abstract void eat(); + /*public abstract void eat1(); + public abstract void eat2();*/ +} diff --git a/day09/src/com/inmind/abstract07/Cat.java b/day09/src/com/inmind/abstract07/Cat.java new file mode 100644 index 0000000..9c4b025 --- /dev/null +++ b/day09/src/com/inmind/abstract07/Cat.java @@ -0,0 +1,11 @@ +package com.inmind.abstract07; + +public class Cat extends Animal{ + //对抽象父类的抽象方法进行具体的实现 + @Override + public void eat() { + System.out.println("猫吃鱼"); + } + + +} diff --git a/day09/src/com/inmind/abstract07/Demo07.java b/day09/src/com/inmind/abstract07/Demo07.java new file mode 100644 index 0000000..a42dc37 --- /dev/null +++ b/day09/src/com/inmind/abstract07/Demo07.java @@ -0,0 +1,23 @@ +package com.inmind.abstract07; +/* +如何使用抽象类和抽象方法??? +1.抽象类不能被创建对象的,只能通过子类创建对象 +2.非抽象的子类,必须实现重写抽象类中的抽象方法 +3.创建子类对象,调用对应方法 + +注意事项: +1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。 +2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。 +3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。 +4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。 + */ +public class Demo07 { + public static void main(String[] args) { + //Animal animal = new Animal(); + //创建抽象类的子类对象 + Cat cat = new Cat(); + cat.name = "汤姆"; + cat.age = 35; + cat.eat(); + } +} diff --git a/day09/src/com/inmind/this_super06/Demo06.java b/day09/src/com/inmind/this_super06/Demo06.java index c0481ff..199c8e7 100644 --- a/day09/src/com/inmind/this_super06/Demo06.java +++ b/day09/src/com/inmind/this_super06/Demo06.java @@ -19,4 +19,8 @@ this关键字使用方式 c.this可以调用其他的重载构造方法,但是不能互相调用(死循环) */ public class Demo06 { + public static void main(String[] args) { + Zi zi = new Zi(); + zi.show(); + } } diff --git a/day09/src/com/inmind/this_super06/Zi.java b/day09/src/com/inmind/this_super06/Zi.java index b0d9251..e50ac0b 100644 --- a/day09/src/com/inmind/this_super06/Zi.java +++ b/day09/src/com/inmind/this_super06/Zi.java @@ -6,7 +6,7 @@ public class Zi extends Fu{ public Zi(){ //调用有参构造 - this(10); + this(111); } public Zi(int num){ //调用满参构造 @@ -24,7 +24,7 @@ public class Zi extends Fu{ public void show(){ System.out.println(super.num); System.out.println(super.numFu); - System.out.println(num); + System.out.println(num);//10 30 System.out.println(numZi); super.method();//调用父类的方法 this.methodZi();//调用本类的成员方法