抽象类 末蓝、 2022-12-28 14:24 19阅读 0赞 # 抽象类的概述 # 包含抽象方法的类, 属于类的一种,属于特殊的类, java中被关键字**abstract**修饰的类就是抽象类 # 抽象方法的概念 # 只有方法声明,没有方法体的方法。用**abstract**修饰 # 注意: # 抽象方法只能定义在抽象类中和接口中 # 抽象方法的由来 # 当需要定义一个方法,却不明确方法的具体实现时,可以将方法定义为**abstract**,具体实现延迟到子类 # 抽象类特点 # 修饰符: 抽象类和抽象方法必须用abstract关键字修饰 修饰符abstract class 类名{ } 修饰符 abstract 返回类型 方法名 (参数列表); 抽象类不能被实例化(不能new),只能通过创建子类对象来完成初始化操作 抽象类子类的两个选择 如果是普通类,则必须重写父类所有抽象方法 如果是抽象类,则不用重写抽象方法 # 抽象类的成员特点 # ## 成员变量 ## 可以有普通的成员变量 也可以有成员常量(final) ## 成员方法 ## 可以有普通方法(包括静态方法),也可以有抽象方法 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类(或接口) ## 构造方法 ## 像普通类一样有构造方法,且可以重载 **抽象类的构造方法是给子类创建对象时调用的。** # 特点: # > 1、有构造方法但是**不能创建对象** > 2、构造方法给子类创建对象的时候调用使用 > 3、他的抽象方法必须要求子类重写全部的抽象方法 # 抽象类和抽象方法的关系 # 1、抽象类不一定有抽象方法 2、有抽象方法的类一定是抽象类 抽象类一般用于父类,管理抽象方法 # 总结: # * 抽象类中的成员比普通类多了一种: 抽象方法(可以没有抽象方法,但是类必须被abstract修饰) * * 其他的和普通类一样 # 练习 # 程序员类:属性(姓名、工号、工资、奖金),行为(工作:软件开发) 测试工程师:属性(姓名、工号、工资),行为(工作:软件测试) 项目经理类:属性(姓名、工号、工资、奖金),行为(工作:控制进度) **代码示例:** 抽象类: public abstract class Employees { // 共性的属性 // 姓名 private String name; // 工号 private String id; //工资 private double salary; // 共性的行为声明 public abstract void work() ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public Employees(String name, String id, double salary) { super(); this.name = name; this.id = id; this.salary = salary; } public Employees() { super(); } } 程序员类: public class Coders extends Employees{ private int bonus; @Override public void work() { System.out.println("敲代码!!"); } public int getBonus() { return bonus; } public void setBonus(int bonus) { this.bonus = bonus; } public Coders(String name, String id, double salary, int bonus) { super(name, id, salary); this.bonus = bonus; } public Coders() { super(); } public Coders(String name, String id, double salary) { super(name, id, salary); } } 经理类: public class Managers extends Employees{ private int bonus; @Override public void work() { System.out.println("管理项目进度"); } public int getBonus() { return bonus; } public void setBonus(int bonus) { this.bonus = bonus; } public Managers(String name, String id, double salary, int bonus) { super(name, id, salary); this.bonus = bonus; } public Managers() { super(); } public Managers(String name, String id, double salary) { super(name, id, salary); } } 测试工程师 public class Testers extends Employees{ @Override public void work() { System.out.println("测试程序的bug"); } public Testers() { super(); } public Testers(String name, String id, double salary) { super(name, id, salary); } } 测试类: public class TestEmployees { public static void main(String[] args) { Coders coders = new Coders(); Managers managers = new Managers(); Testers testers = new Testers(); System.out.println(coders.getName()); System.out.println(coders.getId()); System.out.println(coders.getSalary()); System.out.println(coders.getBonus()); coders.work(); System.out.println("==================="); System.out.println(managers.getName()); System.out.println(managers.getId()); System.out.println(managers.getSalary()); System.out.println(managers.getBonus()); managers.work(); System.out.println("==================="); System.out.println(testers.getName()); System.out.println(testers.getId()); System.out.println(testers.getSalary()); testers.work(); } }
相关 抽象类 抽象类的概述 包含抽象方法的类, 属于类的一种,属于特殊的类, java中被关键字abstract修饰的类就是抽象类 抽象方法的概念 只有方法声明,没有方法体的方 末蓝、/ 2022年12月28日 14:24/ 0 赞/ 20 阅读
相关 抽象类 抽象方法是只声明而未实现的方法,所有的抽象方法必须用abstract修饰,包含抽象方法的类必须也用abstract修饰。 有抽象方法的类一定是抽象类,抽象类不一定有 快来打我*/ 2022年06月08日 07:40/ 0 赞/ 147 阅读
相关 抽象类 1.纯虚函数 在基类中仅仅给出声明,不对虚函数实现定义,而是在派生类中实现。这个虚函数称为纯虚函数。普通函数如果仅仅给出它的声明而没有实现它的函数体,这是编译不过的。纯虚 £神魔★判官ぃ/ 2022年06月08日 00:49/ 0 赞/ 171 阅读
相关 抽象类 抽象类 1、抽象类的概念: 包含一个抽象的方法的类就是抽象类 2、抽象方法: 声明而未被实现的方法,抽象方法必须使用abstract关键字声明。 曾经终败给现在/ 2022年06月07日 03:17/ 0 赞/ 176 阅读
相关 抽象类 抽象类 抽象方法 抽象类 public abstract class className\{\} 1. 抽象类不能被实例化。只有抽象类的非抽象子类可以创 Myth丶恋晨/ 2022年06月06日 12:14/ 0 赞/ 97 阅读
相关 抽象类 1、什么是抽象类? 带有抽象方法但没有方法体、并且在类名前添加abstract关键字的类是抽象类。 2、为什么用抽象类、什么时候用抽象类? 设计一个类作为一些类的 Love The Way You Lie/ 2022年05月05日 09:40/ 0 赞/ 266 阅读
相关 抽象类 抽象类 抽象类的引入 抽象类的引入 空实现: 就是给出了代码块,但是没有实现 注意: 空实现也是实现了 抽象方法的实现没有意义,但是存在有意义? 存在有 客官°小女子只卖身不卖艺/ 2022年03月25日 12:20/ 0 赞/ 242 阅读
相关 抽象类 1. abstract定义抽象类和抽象方法 抽象类不能被实例化,即无法使用new来调用抽象类构造器创建抽象类实例。但是抽象类有构造器,主要是给其子类调用的 约定不等于承诺〃/ 2022年02月19日 10:41/ 0 赞/ 212 阅读
相关 抽象类 基本概念 -------------------- 所有的对象都是通过类来描述的,但并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需 Dear 丶/ 2021年09月22日 22:56/ 0 赞/ 341 阅读
相关 抽象类 Abstract(抽象)可以修饰类、方法 进行先上抽取,只能抽取功能定义,而不抽取功能主体,具体的实现由子类覆盖完成。 抽象相当于一些概念性的东西,而子类相当于功能性的实现 r囧r小猫/ 2021年09月10日 23:14/ 0 赞/ 324 阅读
还没有评论,来说两句吧...