栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java——抽象类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java——抽象类

Java——抽象类

文章参考本文!

目录
  • Java——抽象类
  • 一、抽象类的基本概念
  • 二、抽象类的使用原则
    • 举例
    • 抽象类的使用原则:
  • 三、抽象类的使用限制
    • 1、抽象类中有构造方法吗?
    • 2、抽象类可以被final修饰吗?
    • 3、抽象类可以被static修饰吗?
    • 4、可以直接调用抽象类中static声明的方法吗?

一、抽象类的基本概念

普通类:是一个完善的功能类,可以直接产生实例化对象,并且在普通类中包含有构造方法、普通方法、static方法、常量和变量等内容。
抽象类:在普通类的基础上增加抽象方法的类

抽象方法:普通的方法在声明完要加一个“{}”,表示该方法的方法体,有方法体的方法一定可以被对象直接使用。而抽象方法是没有方法体的方法,同时抽象方法还必须被关键字abstract修饰

拥有抽象方法的类就是抽象类,同时抽象类也必须被关键字abstract修饰

二、抽象类的使用原则 举例



’AbstractDemo’ is abstract; cannot be instantiated
由上面可知,抽象类不能被实例化。
为什么抽象类不能被实例化呢???
假设一个类被实例化,那么就意味着这个类可以实例化对象,有了对象就意味着,该对象有方法有属性,但是抽象类里面的抽象方法没有方法体,所以说抽象类不能被实例化。

抽象类的使用原则:

1、抽象方法必须为public或者protected(因为如果是private,那么该类不能被子类继承,其中的抽象方法也就不能被重写)。默认为public。
2、抽象类不能被实例话,可以采用向上转型的方法处理。注意:一定要在方法内部实例化
3、抽象类必须有子类,用extends继承,一个子类只能继承一个抽象类。
4、子类如果不是抽象类的话必须重写抽象类中的全部方法。(问题:如果子类是抽象类的话那还能重写父类的方法吗?答:可以,被重写的父类中的抽象方法在子类中相当于普通方法)
父类:

子类1重写父类中的两个方法

子类2只重写了一个方法,另外一个方法必须用abstract关键字修饰。而且因为子类2有抽象方法,所以子类2也是抽象类,所以子类2也不能被实例化。

三、抽象类的使用限制 1、抽象类中有构造方法吗?

因为抽象类中有属性,抽象类与普通类的区别只是有抽象方法,所以这些属性是要被初始化的,抽象类中的构造方法就是用来初始化的。
举例:


2、抽象类可以被final修饰吗?

不能,final修饰的类是最终类,不能有子类,但是抽象类必须有子类。

3、抽象类可以被static修饰吗?

范例:外部类

范例:内部类



注意点:
1、继承内部类是extends AbstractDeom.inner,这里不可以直接extends inner
2、内部类实例话的时候也是 AbstractDemo.inner。
3、外部抽象类不允许使用static声明,而内部的抽象类运行使用static声明。使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。

4、可以直接调用抽象类中static声明的方法吗?

任何时候,如果要执行类中的static方法的时候,都可以在没有对象的情况下直接调用,对于抽象类也一样。

补充
方法是一定要加()的,因为你要传递参数啊,但是类是一定不加()的,因为类不需要传递参数。
如下图:
public AbstractDemo(){}; 这里是构造方法,所以要加()
static abstract class inner{} 这里是内部类,所以不需要加()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697081.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号