Java中抽象的概念

抽象的表述

	我们之前所说的猫,狗,猪,熊猫,老虎等等都是动物具体的例子,
	而动物本身是一个抽象的概念
	
    但是回想一下我们之前都是将动物写成了一个具体的,而类又可以
    创建对象,但是实际上抽象的东西本身应该不能被实例化
    
    并且动物中吃的方法应该也不是一个具体的实现,以及所有动物共同
    拥有的方法在动物中应该都是抽象的表现
    
    我们今天之后,我们把一个不具体的功能,叫做抽象方法,而如果一个
    类中有抽象方法,我们就把这个类称之为抽象类。

抽象类的特点

1、抽象类和抽象方法都要用一个关键字修饰:abstract
	修饰一个类 放在class的前面
    	举例: abstract class Animal3{}
        	修饰一个方法 一般是放在权限修饰符后面
    定义一个抽象的show方法
         举例:public abstract void show();

2、有抽象方法的类一定要是抽象类,抽象类不一定要有抽象方法,
    具体的类中不能有抽象方法,抽象类中既可以存在抽象方法
    也可以存在有方法体的方法。
    
3、抽象类不能被实例化
     既然不能被实例化,那写在抽象类中的方法如何被调用呢?
     抽象类如何创建呢?
     通过多态的形式,使用具体的子类去实例化调用方法,
     专业术语称之为:抽象多态
     
4、如果继承抽象类的是一个具体的子类,需要重写该抽象类中所有的抽象方法
    如果继承抽象的也是一个抽象类,可以不去重写父类中的抽象方法,
    也可以选择性的去重写。

抽象类的成员的特点

1、成员变量:
        既可以是变量,也可以是常量
        
2、构造方法:
        可以存在构造方法,我们上一个程序中,才总结出抽象类不能被实例化,
        这里构造方法意义是什么?
        我们之前在继承中还说过要想初始化子类,必须先初始化父类,所以这里
        构造方法是提供初始化父类的作用
        
3、 成员方法:
        可以是抽象方法,但是具体的子类必须要重写该方法
        也可以不是抽象方法,提高代码的复用性。

注意:
1、抽象类中可以没有抽象方法
2、抽象类不能被实例

抽象类中可以存在哪些关键字?

1、abstract可以和public关键字共存

2、private和abstract关键字冲突

3、static和abstract关键字冲突

4、final和abstract关键字冲突

注意:
Java中的所有的类都有一个共同的父类:Object

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值