继承、接口、static、abstract
继承:
1.用extends来完成继承
2.子类可以继承父类全部的数据域但是只有部分的数据域对子类可见
3.在java中支持单继承
4.单继承和多继承的比较
(1)多继承比单继承能够更好的提高代码的复用性
(2)单继承比多继承能够更好的减少方法调用的歧义
优点:
(1)提高代码的复用性
(2)避免方法的调用产生混乱
接口:
- 用implements关键字来完成类和接口之间的实现关系
- 在java中支持的是类和接口之间的多实现
- 在java中支持接口和接口之间的多继承
- 接口不能创建对象
- 接口也没有构造方法
- 接口不是类
- 在jdk1.8之前只能定义抽象方法,从jdk1.8开始,接口允许定义实体方法
- 在接口定义的抽象方法默认是用public abstract修饰
- 在接口中可以定义属性,但是默认使用public static final修饰
static:
静态变量: - 在类加载的时候加载到方法区
- 在方法区2中赋予了默认值
- 静态变量是先于对象出现,所以习惯上使用类名来调用
- 本类的所有对象储存的是这个静态变量在方法区中的地址,所以静态变量是被所以对象共享
- 静态变量只能定义在类中不能定义到任何代码块中
静态方法: - 在类加载的时候加载到方法区
- 在方法区中只储存不执行
- 在方法被调用的时候到栈内存中执行
- 静态方法先于对象出现
- 静态方法中不能直接使用本类中的非静态
- 静态方法可以重载
- 静态方法能被继承,但是不能被重写
<font color="green“> 静态代码块
用static{}包起来的代码
在类加载(第一次使用)的时候执行一次
执行顺序
(1)父类静态
(2)子类静态
(3)父类非静态
(4)父类构造方法
(5)子类非静态方法
(6)子类构造方法
abstract:
抽象类
1.必须被继承
2.抽象类不能用final修饰
3.抽象类的构造方法私有,只不过这个时候需要将其内部类形式来完成继承
4.不能被实例化,但是有构造方法
5.子类在继承抽象类之后必须重写其中的所有抽象方法,除非子类也是抽象类
抽象方法
1.必须被继承重写
2.可以重载
3.不能用static/final/private修饰
4.如果抽象方法是默认权限,要求子类必须和抽象类同包
继承、接口、static、abstract的更多相关文章
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- 接口的定义——默认加public abstract默认全局常量;与继承不同,子类可以同时实现多个接口;抽象类实现接口;接口继承接口
一. 接口的定义 接口中定义的方法,全部都为抽象方法,默认加public abstract 接口中定义的变量,全部为全局常量,默认加public static final 二.与继承不同,子类可以同时 ...
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问: 抽象类是否可继承实体类 (concrete class) 答: 抽象类是 ...
- java修饰符public final static abstract transient
JAVA 修饰符public final static abstract transient 关键字: public final static abstract ... 1.public prot ...
- python的类的继承-接口继承-归一化设计
1.先在子类本身找,如果子类没有,会去父类找 class Dad: '这个是爸爸类' money=10#Dad类的数据属性 def __init__(self,name): print("爸 ...
- 反射的妙用:C#通过反射动态生成类型继承接口并实现
起因 最近想自己鼓捣个RPC,想着简化RPC调用方式,直接申明接口,然后根据接口的属性去配置RPC调用的相关信息.有一种说法叫申明式调用. 简单来说就是,申明一个interface,动态继承并实例化, ...
- 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ...
- java 接口 继承 接口 抽象类 继承 实体类
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 接口 可以 继承 接口 抽象类 可以 实现 接口 抽象类 继承实体类 需要 实体类 有 ...
- 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable
建议46:显式释放资源需继承接口IDisposable C#中的每一个类型都代表一种资源,资源分为两类: 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源:不受CLR ...
- 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口.抽象类可以实现(implements)接口,抽象类 ...
随机推荐
- Fiddler工具使用介绍一
Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改. 代理就是在 ...
- C实现动态进度条
#include <iostream> #include <windows.h> void HideCursor() { CONSOLE_CURSOR_INFO cursor_ ...
- JSON Web Token(JWT)原理和用法介绍
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍一下JWT的原理和用法. 官网地址:https://jwt.io/ 一.跨域身份验证 Internet服务无法与 ...
- JavaScript变量与数据类型详解
变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问. 变量的作用就是用于存储值. 语法: 声明变量时,总是以关键字var打头.任何情况下都应该这样做.然后给变 ...
- 程序员IT计算机中常见英语单词
abstract 抽象的 abstract base class (ABC)抽象基类 abstract class 抽象类 abstraction 抽象.抽象物.抽象性 access 存取.访问 ac ...
- Spring Data Redis 详解及实战一文搞定
SDR - Spring Data Redis的简称. Spring Data Redis提供了从Spring应用程序轻松配置和访问Redis的功能.它提供了与商店互动的低级别和高级别抽象,使用户免受 ...
- 给iPhone手机安装*.ipa
首先手机连接电脑,打开 ITunes. 左上角点击文件,再点击添加到资料库. 找到你要安装的ipa点击选择打开 好了ipa已经添加进去后,你会看你你刚才添加进去的应用在列表内,点击左上角一个手机的图标 ...
- VueJs(13)---过滤器
过滤器 过滤器 1.过滤器规则 Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方: 双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤 ...
- struts2框架(1)---struts2入门
struts2框架 如果你之前在MVC模式的时候一直都是通过servlet,获取和返回数据,那么现在开始学习struts2框架, Struts是一个实现MVC设计模式的优秀的框架.它的许多优点我就不说 ...
- 源码安装ELK-5.6.10版本
目录: 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Kibana 五.安装Nginx 六.安装Logstash 七.安装Logstash-forwarder 八.测试 系统环 ...