关键字 abstract

关键字     abstract

1.抽象类        

抽象类就是被abstract修饰的类,其最大的特点就是不能实例化对象,即不能创建对象。(抽象类和普通类的唯一区别就是不能创建对象)

public abstract class Animal {
    private String name;
    private int age;

    public Animal() {
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void eat() {
        System.out.println("动物进食");
    }
}

class Test {
    public static void main(String[] args) {
        Animal animal = new Animal();//报错,原因为Animal无法被实例化
    }
}

如上述代码所示,定义了一个抽象类Animal,在类中对姓名和年龄进行了封装,然后在Test中创建Animal类的实例报错,因此抽象类无法创建实例,其余和普通类相同,可以有属性,有方法。

2.抽象方法

抽象方法就是被abstract修饰的方法。(抽象方法是专门为多态设计的)

注意:(1)抽象方法必须定义在抽象类中 

public class Animal {
    public abstract void eat();//在普通类中定义抽象方法,报错
}

如上述代码所示,在普通类中定义一个抽象方法,发生报错。因此,抽象方法必须定义在抽象类中。

  (2)抽象方法不能有方法实现

public abstract class Animal {
    public abstract void eat(){};//在抽象方法中增加方法实现,报错
}

如上述代码所示,在一个抽象类中定义了一个抽象方法,且该抽象方法中添加了方法实现,发生报错。因此,在抽象方法中,不能有方法实现。


总结

        1.抽象类属于类的设计层面上的问题。它是为了设计类而存在,不是为了创建对象而存在。它最佳的使用场景就是多态。
       2.抽象类声明子类必须要实现的方法(即自身的抽象方法),子类根据自己特征实现父类中声明的抽象方法。在创建和使用对象的时候,借助多态,用父类引用指向子类对象。这样可以充分发挥多态的优势。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值