Java抽象类

面向对象编程的核心是面向抽象编程,一般在开发过程中依赖抽象,不依赖具体

抽象类

包含抽象方法的类叫做抽象类。抽象类不允许直接创建实例,只能由子类提供方法实现后才能通过子类创建对象

抽象方法就是指没有方法体的方法,方法只做声明,没有具体的实现。抽象方法必须在子类中提供具体实现

抽象类中可以包含抽象方法,不是必须包含抽象方法

抽象类和普通类一样可以定义成员方法和成员属性,以及构造器和析构器。只是抽象类允许包含抽象方法

public abstract class Animal{
    private String name;
    Protected int age;
    //构造器
    public Animal(){}
    public Animal(int age){}
    //普通成员方法
    public void sleep(){
    System.out.println("闭眼");
} 
    public abstract void run();//抽象方法
}

public abstract class Mammal extends Animal{
    //没有针对run这个方法提供实现,则当前子类只能是抽象类
}
public class human extends Mammal {
public void run(){}//允许空实现,但是不能没有实现
}

抽象类的特点

1、方法只有声明而没有具体的实现,则方法就是抽象方法

不是空实现方法体,是没有方法体

需要使用abstract修改,否则语法报错

抽象方法必须定义在抽象类中,该类也必须使用abstract修饰

2、抽象方法只能使用范围限定词中的public/protected/package默认,不能使用privateo

public void pp(这是一个包含空实现的方法,不是抽象方法

public void pp();这是一个没有方法实现的方法。在抽象类中要求必须使用abstract修饰

3、不允许定义抽象构造器 public abstract Animal();  语法报错

4、抽象类或者抽象方法不允许为final

final类不允许继承,则不能定义子类

final方法不允许子类中覆盖定义,所以不能定义final抽象方法

5、抽象类中可以定义静态方法

6、抽象类不能之间创建对象,只能通过继承的方式定义子类,然后创建子类对象。子类对象可以赋值给抽象类声明的变量Animal a = new Mammal();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值