首页IT科技java抽象类的写法(java-抽象类笔记)

java抽象类的写法(java-抽象类笔记)

时间2025-06-21 01:37:51分类IT科技浏览5424
导读:抽象方法和抽象类 抽象方法...

抽象方法和抽象类

抽象方法 使用 abstract 修饰的方法             ,没有方法体                  ,只有声明            。 定义的是一种“规范            ”       ,就是告诉子类必须要给抽象方法提供具体的实现                    。 抽象类 包含抽象方法的类就是抽象类      。 通过抽象类          ,我们就可以做到严格限制子类的设计                  ,使子类之间更加通用         。 //抽象类的定义 public abstract class 类名 {} //抽象方法的定义 public abstract void eat();

抽象类中不一定有抽象方法          ,有抽象方法的类一定是抽象类

抽象类不能实例化

抽象类可以有构造方法

抽象类的子类

要么重写抽象类中的所有抽象方法

要么是抽象类

抽象类和抽象方法的基本用法

//抽象类 abstract class Animal { abstract public void shout(); // 抽象方法 } class Dog extends Animal { // 子类必须实现父类的抽象方法       ,否则编译错误 public void shout() { System.out.println("汪汪汪!"); } public void seeDoor() { System.out.println("看门中...."); } } // 测试抽象类 public class TestAbstractClass { public static void main(String[] args) { Dog a = new Dog(); a.shout(); a.seeDoor(); } }

抽象类的使用要点:

1. 有抽象方法的类只能定义成抽象类

2. 抽象类不能实例化                  ,即不能用 new 来实例化抽象类                    。

3. 抽象类可以包含属性             、方法                  、构造方法         。但是构造方法不能用来 new 实例             ,只能用来被子类调用      。

4. 抽象类只能用来被继承                    。

5. 抽象方法必须被子类实现            。

抽象类的案例

案例需求

定义猫类(Cat)和狗类(Dog)

猫类成员方法:eat(猫吃鱼)drink(喝水…)

狗类成员方法:eat(狗吃肉)drink(喝水…)

实现步骤

猫类和狗类中存在共性内容    ,应向上抽取出一个动物类(Animal)

父类Animal中                   ,无法将 eat 方法具体实现描述清楚                ,所以定义为抽象方法

抽象方法需要存活在抽象类中,将Animal定义为抽象类

让 Cat 和 Dog 分别继承 Animal                ,重写eat方法

测试类中创建 Cat 和 Dog 对象                   ,调用方法测试

代码实现

// 动物类 abstract class Animal { public void drink() { System.out.println("喝水"); } public Animal() { } public abstract void eat(); } // 猫类 继承抽象类 并重写其中方法 class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); } } // 狗类 继承抽象类 并重写其中方法 class Dog extends Animal { @Override public void eat() { System.out.println("狗吃骨头..."); } } public class test { public static void main(String[] args) { Dog d = new Dog(); d.eat(); d.drink(); Cat c = new Cat(); c.drink(); c.eat(); // Animal a = new Animal(); 抽象类不能实例化 // a.eat(); } }

模板设计模式

设计模式

设计模式(Design pattern) 是一套被反复使用       、多数人知晓的          、经过分类编目的                  、代码设计经验的总结   。 使用设计模式是为了可重用代码          、让代码更容易被他人理解       、保证代码可靠性                  、程序的重用性                    。

模板设计模式

把抽象类整体就可以看做成一个模板    ,模板中不能决定的东西定义成抽象方法 让使用模板的类(继承抽象类的类)去重写抽象方法实现需求

模板设计模式的优势

模板已经定义了通用结构             ,使用者只需要关心自己需要实现的功能即可

示例代码

/* 作文模板类 */ abstract class CompositionTemplate { public final void write() { System.out.println("<<我的爸爸>>"); body(); System.out.println("啊~ 这就是我的爸爸"); } public abstract void body(); } // 实现类A class Tom extends CompositionTemplate { @Override public void body() { System.out.println("那是一个秋天, 风儿那么缠绵,记忆中, " + "那天爸爸骑车接我放学回家,我的脚卡在了自行车链当中, 爸爸蹬不动,他就站起来蹬..."); } } // 实现类B class Tony extends CompositionTemplate { @Override public void body() { } /* * public void write(){ * * } */ } // 测试类 public class test { public static void main(String[] args) { Tom t = new Tom(); t.write(); } }

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
帝国cms功能(帝国cms基于什么框架)