抽象类

一个父类设计的非常抽象,而没有任何的实例,那这个类就叫做抽象类,抽象类由修饰符abstract修饰。

抽象类是没有实例的,所以抽象类是不能使用new操作符的,但抽象类可以当成一种数据类型,eg:

若父类A是抽象类,其子类是类B,则

A a = new A();是不合法的。

A[] a = new A[10];

a[0] = new B();是合法的。


若一个类中包含抽象方法,那这个类一定是抽象类;若一个类是抽象类,但这个类中不一定有抽象方法。

若一个父类不是抽象类,但它的子类也可以是抽象类,而且在子类中可以用abstract来覆盖父类中的实例方法,eg;

public class Test {
    public void m1(){
        
    }
}

abstract class M1 extends Test{
    @Override
    public abstract void m1();
}


抽象类中的抽象方法是在父类中定义,在子类中实现的。而如果子类中没有实现这个抽象方法,则要将子类也定义为抽象类,在子类的子类中实现这个方法,以此类推。

public abstract class abstractTest {
    public abstract void ab();
}

abstract class AB1 extends abstractTest{
    
}

abstract class AB2 extends AB1{
    abstract void ab2();//可以在子类中继续添加抽象方法
}

class AB3 extends AB2{//若还有任意的抽象方法没有被实现,那这个类依然要定义为抽象类
    @Override
    public void ab() {
    }
    
    @Override
    void ab2() {
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值