面向对象——抽象类(abstract)

一、抽象类概述

什么时候用抽象类?

答:某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。

抽象方法的定义:方法只有声明没有实现,用abstract来修饰,该方法就是抽象方法。

注意:抽象方法必须定义在抽象类中,该类也用abstract修饰。

 二、抽象类的使用

抽象类的定义:权限修饰符abstract class 类名 {}

抽象方法的定义:权限修饰符abstract 返回值类型 方法名(参数列表) ;

【示例】抽象类&抽象方法的定义

// 抽象类,员工类

abstract class Employee {

   // 抽象方法,用abstract修饰,只有声明没有实现

   public abstract void work();

}

// 讲师类

class Teacher extends Employee {

   @Override

   public void work() { // 实现抽象方法

      System.out.println("老师讲java课");

   }

}

// 助教类

class Assistant extends Employee {

   @Override

   public void work() { // 实现抽象方法

      System.out.println("助教协助同学解决bug");

   }

}

 三、抽象类的特点

抽象类的特点:

        1)用abstract修饰的类称之为抽象类。

        2)抽象类不能被实例化,因为抽象方法只有声明,无法用对象调用该方法。

        3)抽象类可以定义成员变量静态变量

        4)抽象类可以有构造方法,方便子类创建对象时给抽象类的属性赋值。

        5)抽象类中可以定义普通方法,也可以定义抽象方法(没有抽象方法也可以)。

        6)抽象类一定是一个父类,需要子类重写父类的抽象方法,然后在实例化使用。

抽象方法的特点:

1)抽象方法只有方法声明,没有方法体。

2)子类要么实现父类的抽象方法,要么子类也是一个抽象类,否则编译失败。

3)抽象方法只能存在于抽象类接口中,不能存在于普通类中

注意:abstract关键字不能和private、final、static关键字共存!

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深山老林.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值