JAVA -- OOP -- 抽象类和抽象方法

1.概念

  • Java中被 abstract 修饰的方法叫做抽象方法,被 abstract 修饰的类叫做抽象类

2.抽象类及抽象方法的格式

	abstract class Teacher{
		//权限修饰符 abstract 返回值类型 方法名(参数列表);
	    public abstract void teach();
	}

3.特点

  • abstract 可以修饰方法或者类
  • 抽象方法只有方法声明,没有方法体
  • 如果一个类中含有抽象方法,那么这个类一定要被声明为抽象类
  • 抽象类中可以没有抽象方法
  • 如果一个子类继承了一个抽象父类,有两种方案:
    • 作为抽象子类,不实现抽象父类的抽象方法,声明为abstract
    • 作为普通子类,重写抽象父类的所有抽象方法
  • 抽象类不可以被实例化(不能创建对象)
  • 抽象类有构造函数,只是构造函数不是为了自己创建对象时使用,而是为了子类创建对象时使用,(默认存在子类构造第一行调用super();

4.抽象类中的成员测试

  • 抽象类中既可以有普通成员变量,也可以有成员常量
  • 抽象类中的方法没有限制(可以全是抽象方法,全是普通方法,或者有普通有抽象)

5.为什么一个类没有抽象方法还要被声明为抽象类?

  • 因为抽象类不能被实例化,所以,如果不想让外界创建本类对象的实例,就可以将普通类声明为抽象类

6.abstract的注意事项

  • 抽象方法要求子类继承后必须重写
  • abstract和下列关键字一起使用会没有意义
    • 1.private:被私有化后,子类无法重写,与abstract相违背。
    • 2.static:静态优先于对象存在,存在加载顺序问题。
    • 3.final:被final修饰后,无法重写,与abstract相违背。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值