抽象类

作者: 曾刚 | 来源:发表于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);
        }
    }
    

    相关文章

      网友评论

          本文标题:抽象类

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