晋江市住房与城乡建设局网站,好看又免费的图片素材,可用来做外链推广的网站,app网站建设工作师文章目录 1. 抽象类的概述2. 抽象类的特点3. 抽象类的实用价值4. 抽象类的案例 1. 抽象类的概述 当我们在做子类共性功能抽取时#xff0c;有些方法在父类中并没有具体的体现#xff0c;这个时候就需要抽象类了#xff01; 在Java中#xff0c;一个没有方法体的方法应该定义… 文章目录 1. 抽象类的概述2. 抽象类的特点3. 抽象类的实用价值4. 抽象类的案例 1. 抽象类的概述 当我们在做子类共性功能抽取时有些方法在父类中并没有具体的体现这个时候就需要抽象类了 在Java中一个没有方法体的方法应该定义为抽象方法而类中如果有抽象方法该类必须定义为抽 象类 2. 抽象类的特点 抽象类和抽象方法必须使用 abstract 关键字修饰
//抽象类的定义
public abstract class 类名 {}
//抽象方法的定义
public abstract void eat();抽象类中不一定有抽象方法有抽象方法的类一定是抽象类抽象类不能实例化抽象类可以有构造方法抽象类的子类要么重写抽象类中的所有抽象方法要么是抽象类 3. 抽象类的实用价值
封装共性功能抽象类可以封装多个子类共同拥有的功能避免各自独立实现重复的代码。通过将共性行为定义在抽象类中具体子类只需要实现自己的特殊逻辑即可可以大大提高代码的复用性。
规范行为抽象类通过定义抽象方法规范了子类的行为强制子类必须实现相关方法从而避免了因漏实现或实现不当带来的问题同时也增加了代码的易读性、易维护性。
反向控制抽象类能够为子类提供基本行为框架在子类中调用父类定义的具体方法和属性以完成基本功能。子类通过继承与扩展的方式实现自己的特殊逻辑这种反向控制能够在大型工程中有效地管理代码结构和维护。
技术支持在框架设计、系统维护以及代码重构等过程中抽象类可以提供技术支持和规范将大型工程的不同部分组合起来形成协调有序的整体并且能够保证不同部分之间的解耦和相互独立性。 4. 抽象类的案例 案例需求 定义猫类(Cat)和狗类(Dog) 猫类成员方法eat猫吃鱼drink喝水… 实现步骤
猫类和狗类中存在共性内容应向上抽取出一个动物类Animal父类Animal中无法将 eat 方法具体实现描述清楚所以定义为抽象方法抽象方法需要存活在抽象类中将Animal定义为抽象类让 Cat 和 Dog 分别继承 Animal重写eat方法测试类中创建 Cat 和 Dog 对象调用方法测试
代码实现
动物类
public abstract class Animal {public void drink(){System.out.println(喝水);}public Animal(){}public abstract void eat();
}猫类
public class Cat extends Animal {Overridepublic void eat() {System.out.println(猫吃鱼);}
}狗类
public class Dog extends Animal {Overridepublic void eat() {System.out.println(狗吃肉);}
}测试类
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();
}