抽象类 | 学习笔记

简介: 快速学习抽象类。

开发者学堂课程【Java 面试疑难点串讲1:面试技巧及语言基础:抽象类】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/24/detail/498


抽象类


内容介绍

一、抽象类的实例化


一、抽象类的实例化

首先针对于抽象类应该有一个核心的认识:抽象类只是一个比普通类多了抽象方法的类而已,其它的结构上和普通类是差不多。

还有一个使用上的区别就是抽象类无法直接使用关键字new进行对象的实例化控制。

package cn.mldn.demo;

class A {

}

public class TestAbs {

public static void main( String[] args) {

a = new A() ;

}

}

普通类的最大的特征在于其定义了类的结构之后可以直接使用关键new 进行对象实例化,但是从继承的角度来看,普通类的继承里面对子类没有强制性约束。

所以如果现在某些方法必须要求子类来实现。

那么现在如果使用的是一个普通类,整个的设计就会非常的糟糕,所以在这样的状态下,我们认为需要去使用抽象类。

因为现在父类中也会包含有属性,而所有的属性必须通过构造执行之后才会进行内存空间的分配,那么父类(抽象类)也一定需要调用构造方法。

3.png所有的关键字 new 调用构造方法实例化对象的部分都可以将其理解为"匿名对象"的语法( newB() )。

 

 

 

相关文章
|
6天前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
5月前
|
C++
C++程序中的抽象类
C++程序中的抽象类
46 0
|
5月前
抽象类
如何使用如何使用抽象类和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法 4.创建子类对象进行使用 关于抽象类: 1.抽象类不能创建对象,只能创建器非抽象的子类对象 2.抽象类中,可以有构造方法,是子类创建对象时,初始化父类成员用的。 3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 4.抽象类的子类,必须重新抽象父类中的所有抽象方法和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法
27 0
C++学习笔记_04抽象类、多态 2021-04-15
C++学习笔记_04抽象类、多态 2021-04-15
|
编译器
抽象类的学习与总结
抽象类的学习与总结
|
Java
Java面向对象—抽象类和接口
Java面向对象—抽象类和接口
103 0
|
Java
Java面向对象之抽象类与接口
抽象类的使用原则如下: (1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认为public; (2)抽象类也有构造器 (3)抽象类不能直接实例化,需要依靠子类采用向上转型的方式处理; (4)外部抽象类不允许使用static声明,而内部的抽象类运行使用static声明。使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称 (5)有时候由于抽象类中只需要一个特定的系统子类操作,所以可以忽略掉外部子类。这样的设计在系统类库中会比较常见,目的是对用户隐藏不需要知道的子类
86 0
笔记12-多态&抽象类&接口
笔记12-多态&抽象类&接口