首页 > 其他分享 >抽象类(1)

抽象类(1)

时间:2025-01-19 20:28:21浏览次数:3  
标签:重写 abstract 抽象 子类 抽象类 方法

大家好,今天我们来学习一下抽象类,抽象类是一个java实现多态的重要手段,那我们就来了解一下它的语法。

1.抽象类

1.1 抽象类概念.

在面向对象的概念中,所有的对象都是通过类来描绘的。但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.知识点:

1、抽象类使用abstract修饰类.

2.抽象类当中可以包含普通类所能包含的成员.

3.抽象类和普通类不一样的是,抽象类当中可以包含抽象方法.

4.抽象方法是使用abstract修饰的,这个方法没有具体的实现.

5.不能实制化抽象类

6.抽象类存在的最大的意义,就是为了被继承.

7.如果一个普通类继承了一个抽象类,此时必须重写抽成类当中的方法.

8.如果一个抽象类A继承了一个抽象类B,此时A当中不需要重写B中的抽象方法,但是如果A再被普通类继承,就需要重写.

9、抽象方法不能被是私有的,也就是要满足重写的规则.

10.final可以吗!不可以 他和abstract是矛盾的

11.抽象类当中可以有构造方法.为了方便子类能够直接调用.

因为抽象类本身不初始化,我提供构造方法,相当于我子类能帮助抽象类来初始化.

在打印图形例子中,我们发现,父类中的shape方法好像并没有实际工作,主要的绘制图形都是shape的各种子类draw方法来完成的,像这种没有实际工作的方法,我们可以把它没计成一个抽象方法(abstract method),包含抽象方法的类我们称为抽象类.(abstract class)

1.2抽象类语法.

在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。 

注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法。

1.3 抽象类特性

1.抽象类不能直接实例化对象

 

2.抽象方法不能是private和final的 

3. 抽象方法不能被final和static,因为抽象方法要被子类重写。

4.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用abstract修饰。

5.抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类。

6.抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量。

好了,今天分享就到这里,谢谢大家!!!

 

 

标签:重写,abstract,抽象,子类,抽象类,方法
From: https://blog.csdn.net/2403_86949771/article/details/145246212

相关文章

  • 抽象类和接口
    抽象类和接口一.抽象类和抽象方法1.概述2.特点二.接口1.定义2.语法3.特点4.接口和类的关系三.接口的继承四.default方法五.抽象类和接口的区别六.Comparable接口一.抽象类和抽象方法1.概述在Java中,—个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该......
  • java 抽象类
    ​父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),......
  • 抽象类
    抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。通过多态来实例对......
  • Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (java序列化部
    目录(3)JavaSerializerInstance定义了一个Java序列化实例(1)构造方法参数(2)方法1:serializeStream(3)方法2:deserializeStreamdefaultClassLoader(4)方法3:deserializeStreamloader(5)方法4:serialize(6)方法5:deserializeloader(7)方法6:deserializedefaul......
  • Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (正在更新中~)
    接上一章请先看解读序列化抽象类第一部分目录接上一章请先看解读序列化抽象类第一部分2.Java序列化实现类JavaSerializer(1)JavaSerializationStream类定义了一个java序列化流继承了SerializationStream抽象类代码实际例子1:序列化(2)JavaDeserializationStream......
  • java抽象类(abstract)与接口(Interface)的区别
    一、抽象类与接口的区别下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的可以有非抽象方法,比如deaflut方法4.抽象类中的抽象方法的访问类型可以是......
  • JavaScript的抽象类(Abstract Classes)
    Python基础引言Python是一种广泛使用的高级编程语言,因其简单易学、功能强大而受到程序员的青睐。无论是数据分析、人工智能、Web开发,还是自动化脚本,Python都能为开发者提供便利。本文将介绍Python的基础知识,包括Python的基本语法、数据类型、控制结构、函数、模块和文件操......
  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
    纯虚函数的目的便是,父类不需要去实现,全部都是在子类中实现,有纯虚函数的话,就是抽象类,而且子类必须重写这个纯虚函数。可见以下代码:#include<iostream>usingnamespacestd;classami{public: virtualvoideat()=0;//纯虚函数,有纯虚函数的便是抽象类};classcat:......
  • Java难绷细节02---抽象类中只能有抽象方法吗以及有关抽象类的细节探讨
    Java难绷细节02---抽象类中只能有抽象方法吗以及有关抽象类的细节探讨标题长的像轻小说首先回答标题抛出的问题——False显然,有抽象方法的类是抽象类,但是,抽象类中只能有抽象方法吗?抽象类可以包含抽象方法,也可以包含具体方法如果一个类包含至少一个抽象方法,用abstract关键字修......
  • Java接口与抽象类深度探索
    一、接口1.接口是对行为(方法)的抽象2.为什么设计接口?继承的缺点1:只支持单继承,一个子类只有一个父类,继承的本质是代码的复用。继承的缺点2:继承过来的变量,方法不一定适合子类(父类的代码不一定完全适合子类,这时子类一般会进行重写)接口特点:支持多继承,一个类实现(继承)多个接口;接......