java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0
java 继承使用关键字extends 继承的作用:减少代码量,优化代码
继承的使用注意点:
1子类不能继承父类的私有变量
2.子类不能继承父类的构造方法
3.子类在调用自己的构造方法时 会默认调用父类的无参构造方法
4.私有方法不能被继承
5.子类不能够继承不在一个包中默认权限的成员变量
为什么会调用非类的构造方法:
子类在创建对象的时候初始化非类的对象
Super:关键字 指向非类对象的引用空间
Super关键字的作用:
1. 当子类和父类存在同名的成员变量是,可以通过super来调用父类的成员变量
2. Super 可以调用父类的构造方法
Super 使用的注意事项:
- 用super调用父类的构造方法 ,必须是构造方法中的第一个语句
- Super只能出现在子类的方法和构造方法中
- Super和this不能同时调用构造方法
总结:
Super和this的区别:
- 代表的事物不一样:
This:所属方法调用者对象
Super:表示父类对象的引用空间
- 使用前提不一样:
Super:只能在继承的条件下才能使用
This:在非继承条件下也可以使用
- 调用构造方法:
Super:调用父类的构造方法
This:调用本类的构造方法
方法的重写:
父类的方法满足不了子类的实现,这时候就需要通过重写方法再实现父类的方法
方法重写使用注意事项:
- 方法重写时,必须存在继承关系
- 方法重写时,方法名和形式参数必须一致
- 方法重写时,子类 的权限修饰符需要大于或等于父类的权限修饰符
- 方法重写时,子类的异常类型要小于或等于父类的异常类型
- 方法重写时,子类的返回值类型必须小于或者等于父类的返回值类型
方法的重载却是:
方法名一样,参数列表的个数,类型,顺序是不一样的
Instanceof:实例类型 是关键字
使用方法:boolean res = s instanceof Person; 返回的是布尔值
1.Instanceof 用来判断某一个对象是否属于一个类
2.Instanceof 的使用前提 对象指定的类有继承关系或者实现关系
关键字:final(修饰符,最终)
Final关键字的使用:
- 如果用一个final关键字修饰一个基本数据变量,改变了就不能重新赋值,第一次的结果为最终结果
- 如果用fianl修饰引用数据类型变量,无法给引用数据类型变量重新赋值
- 如果final修饰一个方法,方法就不能被重新重写
- 如果final修饰一个类,类就不能够被继承
如何用fina表示常量
常量的格式:
Public final static 基本数据类型 变量名
抽象类:用关键字abstract
一个类如果被abstract修饰 那么这个类就叫抽象类
如果abstract修饰方法 那么这个方法就叫抽象方法
如果一个类继承了抽象类,必须要实现抽象类中的抽象方法
补充abstract不能够和那些关键字连用:
1.不能和private。
2.不能和static使用。
3.不能和final一起使用
Abstract关键字的使用:
1. 如果一个方法没有方法体,那么这个方法必须要用abstract来修饰
2. 如果一个类中有抽象方法,那么这个类必须用abstract类修饰 抽象的类
3. 如果一个非抽象的类,继承了这个抽象类,那么这个非抽象类必须重写抽象类中所有的抽象方法
4. 一个抽象类是可以有非抽象的方法
5. 一个类中是可以存在构造方法,作用是让子类能够初始化父类中的变量
6. 抽象类不能够创建对象
原因:如创建对象,对象就可以调用到抽象方法,因为抽象方法时没有方法体的 这样调用抽象方法是没有意义的
7.一个抽象类是可以不出现抽象方法的(即可以没有抽象方法)
Abstract 关键字的使用场景:
我们在描述一个事物的时候,发现这个事物确实存在某种行为,但是这种行为又不具体,那么这个时候就可以抽取这种行为,声明一个没有实现的行为,这种行为就叫做抽象行为,那么这个时候就要用到抽象类
接口定义模式:
用interface关键字表示接口
结构:
Interface 接口名{}
实现接口中的方法
Class 类名 implements 接口名1,接口名2……{
这里可以实现接口的方法
}
Java中是支持多实现 一个类可以实现多个接口
接口作用:
- 用来拓展功能
- 让程序解耦
- 定义约束
接口的使用注意事项
- 接口是一个特殊的类,可以定义属性和方法
- 属性是默认用final修饰的: public static final 实际上是一个常量
- 方法都是抽象的:abstract public
- 接口不能创建对象
- 接口 没有构造方法
- 接口是给类去实现的,非抽象类实现接口时,必须将接口中的方法都实现
java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0的更多相关文章
- Java中的继承:父类和子类的关系
一.父类引用指向子类对象时 1.若子类覆盖了某方法,则父类引用调用子类重新定义的新方法 2.若子类未覆盖某方法,则父类引用调用父类本身的旧方法 3.若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性 ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- java设计模式--基础思想总结--父类引用操作对象
看设计模式的相关书籍也有一段时间了,一开始其实是抱着作为java三大框架的基础知识储备来学习的,不过到后来,才发现,在设计模式的一些准则装饰下,java的面向对象威力才真正地体现出来,后面的将会陆续地 ...
- Java标识符和关键字(static,final,abstract,interface)
本文的主要内容如下 1.标识符合关键字 2.Java中的关键字 3.static关键 字 4.static方法 5.静态代码块 6.static修饰符综述 7.final关键字 8.final修饰 ...
- python__基础 : 类的继承,调用父类的属性和方法
1.继承,调用父类属性方法 在python里面,继承一个类只需要这样写: class Animal: def heshui(self): print('动物正在喝水') class Cat(Anima ...
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...
- java怎么调用子类中父类被覆盖的方法
public class b { { void show() { System.out.println("b"); } } public class c extends b { v ...
- JAVA篇<一> 继承extends(已转移到JAVA总结篇)
前题:如果不经过指出继承,那么所有的类都继承了JAVA中的Object类. 正文: 继承的关键字是:extends,是所有面向对象语言的重要特性. 例public class TestExtends ...
- Java多态-如何理解父类引用指向子类对象
java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”. 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过 Cat c = new ...
随机推荐
- oracle存储过程
1.存储过程定义 储存程序 (Stored Procedure),又可称预储程序或者存储过程,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象,它可以视为数据库中的一种函数或子程序.-- ...
- UVa11427 Expect the Expected
数学期望 概率递推 每一天的概率都是独立且相同的.可以先推出每天打i盘赢j盘的概率f[i][j] f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p 输 赢 设此人打一天胜 ...
- ReactNative 使用微软的CodePush进行热更新,继续填坑
1.别被开发环境骗了 在我们开发react native的时候,一键运行工程,js改了,只要cmd+R就可以刷新了.然后会轻易以为真正app上线的时候也是一样,只要app一打开就是最新的. 其实!这是 ...
- RP
关键印象 Base note 任务(task):一段代码. 进程(process):程序的实体,一个正在运行中的可执行文件.拥有独立的虚拟内存空间和系统资源,包括端口权限. 线程(thread):进程 ...
- http请求与响应(content-type)
http请求信息由浏览器把地址栏URL信息和页面(html.jsp.asp)组装成http请求消息体(如下). <request-line>(请求消息行)<headers>(请 ...
- 构造函数忘记new? 看这里看这里
方法一:自调用构造函数 function Person(name){ if( !(this instanceof Person)){//一定要放在开头.检查this是否为构造函数的一个实例 retur ...
- 2.3switch case 语句注意事项。
#include<stdio.h> int main() { void action1(int, int),action2(int, int); char ch; , b=; ch = g ...
- ReportView报表开发记录(一)
在公司开发,使用到ReportView技术,写下自己的经验. 1.在工具箱中找到 ReportViewer,ScriptManager放到test.aspx页面. 如果找不到报表项,请参考http:/ ...
- Java面试题总结 from Baidu 网易 阿里
参加了几场面试,小结下问题: Java 运行时内存模型,最好能画出来 Java 分代GC的原理,JVM中的集中GC 算法 基本多线程的方法和原理 HashMap ConcurrentHashMap怎 ...
- (转)EasyUI-datagrid-自动合并单元格
1.目标 1.1表格初始化完成后,已经自动合并好需要合并的行: 1.2当点击字段排序后,重新进行合并: 2.实现 2.1 引入插件 /** * author ____′↘夏悸 * create dat ...