美文网首页Java
java抽象类和抽象方法

java抽象类和抽象方法

作者: 程序员阿狸 | 来源:发表于2020-12-30 10:19 被阅读0次

一、抽象方法和抽象类的概念和使用

在之前的课程中学习了方法的覆写(子类覆写父类的方法),也就是子类可以重写父类的方法,但是这是可选的(你可以覆写也可以不覆写在语法上都不会出现问题的),如果有一个需求:要求父类的某个方法必须被子类覆写,那么就需要将父类的

这个方法定义为抽象方法(强制要求被覆写),如果一个类中出现了抽象方法那么这个类必须定义为抽象类,抽象类和抽象方法的定义语法:

●定义抽象类:  public  abstract    class      类名{};

●定义抽象方法: public    abstract    返回值类型    方法名();

[抽象方法没有方法体]

DEMO:定义一个抽象类

以上定义了一个抽象类,可以使用该抽象类实例化一个对象吗?

DEMO:使用抽象类实例化对象

发现了不能使用抽象类的构造方法实例化对象,如果不能实例化对象那么抽象类中的所有操作(属性和方法)都没有任何意义,因为不能访问啊,此时可以通过子类来继承抽象类中的操作,让子类对象去调用。

DEMO:定义抽象类的子类.

此时定,义了抽象类的子类,但是要求子类必须覆写父类的所有抽象方法。使用将父类的方法定义为抽象方法的方式来实现强制要求覆写某个方法的目的。

但是有一种情况可以不要求子类覆写父类的所有抽象方法,如果子类也是一个抽象类的时候可以不覆写父类的抽象方法。

DEMO:子类是抽象类

此时可以选择性覆写父类的抽象方法。

总结:

1、定义抽象类和抽象方法使用的关键字是“abstract"

2、抽象类被叫做一个不完整的类因为它有自己的构造方法,但是却不能直接实例化对象,他的抽象方法没有方法体。

3、如果子类不是一个抽象类那么必须覆写父类的所有抽象方法

面试题:

1、抽象类中可以没有抽象方法吗?

答:可以的

2、如抽象类没有抽象方法,那么可以直接实例化对象吗?

答:不可以,因为没有抽象方法它依然是-一个抽象类

3、抽象类的方法必须被子类覆写吗?

答:不一定,如果子类是一个普通类则必须全部覆写,如果子类是一个抽象类则不强制要求全部覆写父类的抽象方法。

5、抽象类中的抽象方法的abstract关键字可以被省略吗?

答:不可以(但是在后面的接口中可以省略)

学习不要走马观花的学,每个知识重点大纲,就是学习路线都是根据每一天市场上多数公司用到的新技术整理,在学习的时候还需要结合练习题来做这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群697888503,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。

相关文章

  • java abstract

    参考java抽象类和抽象方法Android开发:抽象类(abstract class)和接口(Interface)...

  • 接口类&抽象类

    java的接口类和抽象类的特点 java中抽象类的特点: 抽象类和抽象方法必须用关键字abstract修饰 2.如...

  • 杂七杂八学习巩固

    Java中抽象类和接口类 在抽象类中的方法不一定是抽象方法,含有抽象方法的类必须定义成抽象类。 什么时候使用抽象类...

  • java中级开发必知

    (一)Java 1.接口和抽象类的区别 ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成...

  • Java抽象类

    Java抽象类目录:1.抽象类1.1 继承抽象类2.抽象方法public abstract double comp...

  • 高端基础面试题

    接口和抽象类的区别 比较点抽象类接口默认方法抽象类可以有默认的方法实现java 8之前,接口中不存在方法的实现实现...

  • java 基础知识

    一、java 接口和抽象类的区别是什么 1、接口中所有方法隐含的都是抽象的,而抽象类则可以同时包含抽象和非抽象方法...

  • 抽象与接口

    抽象类 抽象类和抽象方法必须用abstract修饰 抽象类不能被实例化 抽象类有默认构造方法 有抽象方法毕为抽象类...

  • 抽象类之——豁然篇

    JAVA抽象类和抽象方法(abstract) 注:此文引用于自学开发的老司机

  • 面向对象:Java的接口与抽象类

    一、抽象类 1.定义和使用格式抽象方法:一种特殊的方法,只有声明,而没有具体的实现。抽象类:在《JAVA编程思想》...

网友评论

    本文标题:java抽象类和抽象方法

    本文链接:https://www.haomeiwen.com/subject/spgcoktx.html