抽象类

作者: 曾刚 | 来源:发表于2016-03-25 13:16 被阅读0次

为什么存在抽象类

抽象类是将类共有的方法抽取出来,不同的方法声明为抽象类;这样新增一种类型时候只需要继承抽象类,实现抽象方法就可以了,降低了实现新类的难度。

使用抽象类需要注意的点

  • 抽象修饰符 abstract
  • 抽象类不能被实现
  • 成员变量,方法跟普通类一样
  • 如果一个类含有抽象方法那么必须声明为抽象类
  • 继承抽象类的类必须实现抽象方法
  • 类与抽象类成员变量重叠的情况下访问抽象变量方式:super.name

样例

// abstract 标记抽象类
public abstract class Employee {
    protected String name;
    protected int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public Employee(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public Employee(){}

    public void play(){
        System.out.println(String.format("name: %s age: %s", this.name, this.age));
    }

    // 静态方法不能被继承类重写
    public static void jump(){
        System.out.println("jump ...");
    };

    // 标记为抽象方法
    protected abstract void remove(int duration);
}
public class User extends Employee {
    public String name;

    public User(String name) {
        super(21, "emp1");
        this.name = name;
    }

    @Override
    public void play() {
        System.out.println("play ..." + super.name);
    }

    @Override
    public void remove(int duration) {
        System.out.println("remove ..." + this.age);
    }

    public static void test(Employee emp){
        emp.play();
    }
    public static void main(String[] args) {
        Employee employee = new User("xx-yy");
        employee.remove(1);
        employee.play();
        employee.jump();

        test(employee);
    }
}

相关文章

  • js.pattern -h 模板方法模式

    基于复用技术、抽象类-->继承抽象类 创建抽象类 实现抽象类

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

  • Dart 抽象类 多态 和接口

    抽象类 Dart中的抽象类:Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。抽象类通过a...

  • abstract关键字

    抽象类 PHP5 支持抽象类和抽象方法。抽象类不能被实例化,必须先继承该抽象类,然后实例化该抽象类的子类。抽象类中...

  • 抽象类

    什么是抽象类 抽象类的特征 抽象类的意义

  • 25.面向对象(抽象类. 多态)

    面向对象(抽象类. 多态) 一. 抽象类 抽象类不能实例化 继承抽象类的子类必须将抽象类中所有的抽象方法重写 抽象...

  • Dart 抽象类 多态 接口

    1.抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象...

  • Flutter/Dart - Dart中的抽象类 多态 和接口

    Dart中的抽象类 Dart中的抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口...

  • Dart中extends和implements

    Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象类通过abs...

  • Dart的抽象类和接口

    Dart中抽象类 Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。1、抽象类通过abst...

网友评论

      本文标题:抽象类

      本文链接:https://www.haomeiwen.com/subject/motdlttx.html