Java抽象类

abstract修饰符可以用来修饰类,也可以用来修饰方法,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。

抽象方法只能写在抽象类中

抽象类中可以有抽象方法,也可以有普通方法。

抽象类eg:public abstract class Demo01{

}

抽象方法,只有方法的名字,没有方法体,方法实现

eg:public abstract void run();


public abstract class Demo01{

             public abstract void run();         

  //抽象方法

             public void eat(){                          //非抽象方法

            System.out.println("hello");

           }

}

父类:

public abstract class Action {
       public abstract void doSomething();  //抽象方法

       public abstract void ha();           //抽象方法
 
       public void hello(){                 //非抽象方法
        System.out.println("hello");
    }
}

抽像类的所有方法,必须要由子类来实现,继承了抽象的子类都必须重写父类中的全部抽象方法(非抽象方法可以直接调用),除非子类也是抽象类,就由子子类来实现(重写)祖父类的抽象方法。

子类1:

//抽象类的所有方法,必须要由子类实现,继承了抽象类的子类都必须要重写全部抽象方法。
//除非子类也是抽象类,需要子子类实现其方法。
public class A extends Action{
    @Override//必须重写父类的方法
    public void doSomething() {
        System.out.println("asd");

    }

    @Override
    public void ha() {
        System.out.println("dxd");

    }
    //public abstract void a();
}

如果不全部重写父类的抽象方法,会报错

 

如果子类也是抽象类,则由子子类来重写祖父类,和父类的抽象方法

子类2:

public abstract class B extends Action {
              public abstract void xmz();
}

子子类

public class C extends B{
    @Override
    public void hello() {
        super.hello();
    }

    @Override
    public void ha() {

    }

    @Override
    public void doSomething() {

    }

    @Override
    public void xmz() {

    }
}

子子类必须重写父类和祖父类的全部抽象方法,否则也会报出错误。

注意:

  1. 不能new抽象类,只能靠子类实现它:约束!
  2. 抽象类中可以写普通方法
  3. 抽象方法必须写在抽现象类中。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值