1、继承的含义
多个类中存在相同的属性和行为的时候,讲这些内容抽取到一个单独的一个类 中。那么多个类无需再定义这些属性和行为,只要继 承即可。这个单独的类称作父类,其他类叫做子 类。可满足 is – a 的关系即可用继承实现。使用extends实现继承。
作用:
在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法。
在java中,使用extends实现继承。子类继承父类,是对父类的扩展。
继承规则:
2、super
super作用
3、方法重写
在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执 行时,子类的方法将覆盖父类的方法。
4、访问修饰符
5、对象实例化过程
2>创建子类的对象,再堆空间中,就会加载所有父类中声明的属性
3>当我们通过子类的构造方法创建子类对象时,我们一定会直接或间接的调用其父类的构造方法, 进而调用父类的构造方法,直到调用了Object类中的无参构造方法为止。真是因为加载过所有的父类结 构,所以才可以看到内存中有父类中的结构,子类对象才可以考虑进行调用。虽然子类调用了父类的构 造方法,但是并没有创建父类的对象。
6、抽象类
抽象类用abstract修饰。抽象类不能直接new对象。抽象类中的方法不一定都是抽象方法.
抽象类的特点
-
抽象类一定是个父类?是的,因为不断抽取而来的。
-
抽象类是否有构造函数?有,虽然不能给自己的对象初始化,但是可以给自己的子类对象初始化。 抽象类和一般类的异同点:
相同:它们都是用来描述事物的。它们之中都可以定义属性和行为。
不同:一般类可以具体的描述事物。抽象类描述事物的信息不具体抽象类中可以多定义一个成员:抽象 函数。一般类可以创建对象,而抽象类不能创建对象。
-
抽象关键字abstract不可以和哪些关键字共存?final:fianl修饰的类是无法被继承的,而abstract 修饰的类一定要有子类.final修饰的方法无法被覆盖,但是abstract修饰的方法必须要被子类去实现 的。static:静态修饰的方法属于类的,它存在与静态区中,和对象就没关系了。而抽象方法没有 方法体,使用类名调用它没有任何意义。private:私有的方法子类是无法继承到的,也不存在覆 盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子 类根本无法得到父类这个方法。互相矛盾。
-
抽象类是不能使用new操作符来初始化的。但是,仍然可以定义它的构造方法,这构造函数在它的 子类的构造函数中调用。即使子类的父类是具体的,这个子类也可以是抽象的。不能使用new操作 符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型
7、抽象方法
抽象方法没有方法体。
抽象方法没有方法体 抽象方法必须在抽象类里
抽象方法必须在子类中被实现,除非子类是抽象类
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行 扩展、改造,但子类总体上会保留抽象类的行为方式。
解决的问题: 当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露 出去,让子类去实现。
换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤已经在父类中写好 了。但是某些部分易变,易变部分可以抽象出来,供不同子类实现。这就是一种模板模式
8、final
final可以修饰属性,方法,类
final修饰的方法,不能被重写,可以被继承
final修饰的类不能被继承
原文地址:https://blog.csdn.net/qq_52059326/article/details/122888608
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_23990.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!