Java抽象类

前言:

本篇博客将带大家了解Java中关于抽象类的相关知识

目录

何为抽象类

抽象类的特点


何为抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的。但是并不是所有的类都是用来描绘对象的。如果一个类中没有包含足够的信息来描绘一个具体的对象,那就把这种类称为抽象类

如:

abstract class Shape{//抽象类
    public void draw(){
        System.out.println("画图形!");
    }
}

Shape类只是将draw方法描绘了个大概,并未做出更进一步的描述。

abstract class Shape{
    abstract public void draw();//抽象方法,没有方法体
}

class Rect extends Shape{
    @Override
    public void draw() {//对draw方法做出了更加具体的描述
        System.out.println("◻");
    }
}

class Cycle extends Shape{
    @Override
    public void draw() {//对draw方法做出了更加具体的描述
        System.out.println("⚪");
    }
}

class Flower extends Shape{
    @Override
    public void draw() {//对draw方法做出了更加具体的描述
        System.out.println("❀");
    }
}

通过上面的第一段代码,我们可以发现,Shape类里面的draw方法并未有实际的操作,因此我们可以将其设计成抽象方法(如第二段代码,方法被abstract修饰),含有抽象方法的类我们将其叫做抽象类


抽象类的特点

  1. 一个类被abstract修饰,这个类被称为抽象类;一个方法被abstract修饰,这个方法被称为抽象方法。抽象方法不用给出具体的实现(如上面的Shape类里面的draw方法)。
  2. 抽象类也是类,内部可以包含普通方法和属性,甚至可以包含构造方法。
  3. 抽象类不能直接实例化对象。
  4. 要想使用抽象类,只能创建该抽象类的子类,然后让子类重写抽象类中的方法。这种语法可以帮助我们预防出错。当我们不小心对抽象类实例化的时候,编译器会进行报错。
  5. 抽象方法不能被private修饰
  6. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
  7. 抽象类必须被继承,并且继承抽象类的类必须要重写父类里面的抽象方法,否则子类也是抽象方法,必须要被abstract修饰。而且即使子类变成了抽象类,那么当其他的类来继承该子类的时候,如果这个其他类不想变成抽象类的话,这个其他类不光要重写子类里面的抽象方法,还要重写父类的抽象方法。
    abstract class Shape{
        abstract public void draw();
    }
    abstract class Rect extends Shape{
        abstract public void write();
    }
    class B extends Rect{
        public void write(){
            //……
        }
        public void draw(){
            //……
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值