[Day10]继承、抽象类
1.继承:在一个现有类的基础上去构建一个新的类,构建出来的新类被称为子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。
2.继承的格式 : class 子类 extends 父类{}
3.继承的好处:
(1)继承的出现提高了代码的复用性,提高软件开发效率
(2)继承的出现让类与类之间产生了关系,提供了多态的前提
4.继承的问题:
(1)在java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类
(2)多个类可以继承一个父类
(3)允许多层继承
(4)父类和子类是相对的概念
5.父类中的成员变量是非私有的,子类中可以直接访问,;若父类中的成员变量私有,子类不能直接访问
当子父类中出现同名变时,在子类中若要访问父类中的成员变量,必须使用关键字super完成。
格式:super.父类中的成员变量
6.子父类中成员方法特点-重写&应用
(1)当在程序中通过对象调用方法时,先查询子类再查询父类
(2)覆盖:子类中出现与父类一模一样的方法,override重写、复写或覆盖
在子类中,访问父类中的成员方法格式:super.父类中的成员方法();
一模一样:方法的返回值类型 方法名 参数列表都要一样
(3)注意:子类方法覆盖父类方法,必须保证权限大于等于父类权限
7.抽象类的产生
(1)方法功能声明相同,但方法功能主体不同。
(2)abstract关键字修饰的类是抽象类
(3)抽象方法定义的格式:public abstract 返回值类型 方法名(参数);
抽象类定义的格式: abstract class 类名{ }
8.抽象类的特点
(1)抽象类和抽象方法都需要被abstract修饰,抽象方法一定要定义在抽象类中。
(2)抽象类不可以直接创建对象
(3)只有覆盖了所有抽象类中所有的抽象方法后,其子类才可以创建对象。
9.关于抽象类中的细节问题
(1)抽象类一定是一个父类
(2)抽象类的可以不定义抽象对象,不让该类创建对象
(3)抽象关键字abstract不可以与private,final,static这三个关键词共存
[Day10]继承、抽象类的更多相关文章
- PHP 面向对象:抽象类继承抽象类
抽象类继承另外一个抽象类时,不用重写其中的抽象方法.抽象类中,不能重写抽象父类的抽象方法.这样的用法,可以理解为对抽象类的扩展. 下面的例子,演示了一个抽象类继承自另外一个抽象类时,不需要重写其中的抽 ...
- PHP面向对象之旅:抽象类继承抽象类(转)
可以理解为对抽象类的扩展 抽象类继承另外一个抽象类时,不用重写其中的抽象方法.抽象类中,不能重写抽象父类的抽象方法.这样的用法,可以理解为对抽象类的扩展. 下面的例子,演示了一个抽象类继承自另外一个抽 ...
- Java中的继承抽象类和接口
一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- 业务中是否有必要让所有的ViewController统一继承抽象类
疑问来自:这里 1.事出有因 其中博主说道的情况我其实也经历过,当时还在找到一个模式可以改变这样的情况.直到有一天看到这个博客,今天晚上有时间来规整一下博主的思路和写了一个测试代码. 这是我目前的Ap ...
- 深入理解OOP(四): 多态和继承(抽象类)
在本文中,我们讨论OOP中的热点之一:抽象类.抽象类在各个编程语言中概念是一致的,但是C#稍微有些不一样.本文中我们会通过代码来实现抽象类,并一一进行解析. 深入理解OOP(一):多态和继承(初期绑定 ...
- 深入浅出OOP(四): 多态和继承(抽象类)
在本文中,我们讨论OOP中的热点之一:抽象类.抽象类在各个编程语言中概念是一致的,但是C#稍微有些不一样.本文中我们会通过代码来实现抽象类,并一一进行解析. Abstract Classes 在微软的 ...
- java之子类继承抽象类,子类构造器调用抽象类构造器问题
package com.wtd; public abstract class Car { private String name= "car"; public Car(String ...
- this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符
1.this关键字的作用 1)调用本类中的属性; 2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用 3)表示当前对象; 2.匿名对象 ...
随机推荐
- 自己定义ViewGroup实现仿淘宝的商品详情页
近期公司在新版本号上有一个须要. 要在首页加入一个滑动效果, 详细就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 例如以下图 X东的商品详情页,假设用户继续向上拉的话就进入商品图文描写叙述 ...
- vs2017 打开附带的localdb v13
查看自己本机装了哪些版本的localdb 打开数据库资源管理器 添加数据库连接 选择要连接的localdb版本,这里选择的是v13版本 添加数据库 新建一个test数据库 ...
- 分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)
前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代 ...
- (原创)Rocketmq分布式消息队列的部署与监控
-------------------------------------------------------------------------------------------- 一.Rocke ...
- 认知:关于Android 调试的坑
要注意充电线和数据线的区别! 要注意充电线和数据线的区别! 要注意充电线和数据线的区别! 可以通过访问 :chrome://inspect/#devices 查看设备是否正常. 通常电脑也会有提示, ...
- CentOS 7.5 安装KVM虚拟机(Linux)
1.认识理解KVM虚拟机 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linu ...
- LeetCode 232:Implement Queue using Stacks
Implement the following operations of a queue using stacks. push(x) -- Push element x to the back ...
- 如何知道局域网内哪些ip被占用
诶,有时候真是略捉急,开始的时候估摸了一个网段,试了3个都没有通,觉得这个一个个试验的方法简直捉急到家了.下面就为大家分享3种简单地如何查看ip地址是否被占用的方法. 1.ping windows键+ ...
- 遍历一个Set的方法只有一个:迭代器(interator)。
Set-HashSet实现类: 遍历一个Set的方法只有一个:迭代器(interator). HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复. 在O ...
- 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102
1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScale+ MPSoC架构 Xilinx新一代Zynq针对控制.图像和网络应用推出了差异化的产品系,这 ...