博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二小节之面向对象下
阅读量:5262 次
发布时间:2019-06-14

本文共 2272 字,大约阅读时间需要 7 分钟。

继承:描述书屋之间的所属关系,在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有的类被称作父类,子类继承了父类的特征(所有可继承的属性和方法)

派生:父类派生出了子类

子类是父类的特类,子类是父类型。一个子类对象可以看作一个父类、

在java中类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,多个类可以继承一个父类,可以多层继承,子类和父类是一种相对概念

在调用子类中无参的构造方法,它会调用父类的无参的构造方法

重写父类方法:

  在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型

  不能使用比父类中被重写的方法更严格的访问权限:private、protected、public

 

当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,在java中用super关键字用于访问父类的成员。

super调用父类的构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次

 

final关键字可用于修饰类、变量以及方法,表示最终的含义:

  1、final修饰的类不能被继承

  2、final修饰的方法不能被子类重写(只能继承,把方法锁定,以防止任何继承类修改它的含义)

  3、final修饰的变量(成员变量和局部变量)是常量(就用static生成一个内存区,不必浪费内存空间),只能赋值一次

  

抽象定义:抽象就是从多个事物中将共性的、本质的内容提取出来

抽象方法不需要方法体,抽象方法对应抽象类,类是抽象的只能作父类(abstract),不能用来创建对象,如果要创建对象,必须去把抽象方法具体化(即继承这个抽象类)

抽象方法:abstract 函数类型 函数名(参数列表); //包含抽象方法的类必须声明为抽象类,但是抽象类可以不包含任何抽象方法,只需使用abstract关键字修饰即可

abstract不与final、static连用

接口(interface)是最纯粹的抽象类(类中的方法都是抽象的)

interface 接口名{  变量类型 变量名=常量值;  方法类型 方法名();          }

  接口中定义的方法和变量名都包含一些默认修饰符:方法使用public abstract修饰,变量用public static final修饰

接口与类:implements,可以实现多个接口,接口与接口之间用逗号隔开

接口与接口:extends,可以继承多个接口,接口与接口之间用逗号隔开

一个类在继承另一个类的同时还可以实现接口,此时,extends关键字必须位于implements关键字之前

 多态:一个名称多种实现

  1、重载(overload):定义多个名称相同参数不同的方法

  2、覆盖(override):在子类中定义与父类声明相同的方法(1、equals:比较两个对象的内容是否相同 2、==:判断两个对象是否为同一个对象的不同引用)

java提供了一个关键字instanceof,它可以判断一个对象是否为某个类(或接口)的实例或者子类实例,语法格式为:对象(或者对象引用变量) instanceof 类(或接口)

JDk中提供了一个Object类,它是所有类的父类,即每个类的父类,即每个类都直接或间接继承自该类

hashCode()是object类中定义的一个方法,这个方法将对象的内存地址进行哈希运算,返回一个int类型的哈希值

异常:以异常类(Throwable)的形式对这些非正常情况进行封装

  1、error:通常出现重大问题:如运行的类不存在或者内存溢出。不编写针对代码对其处理,仅修改程序本身是不能恢复执行的

  2、Exception:在运行时进行出现的一起情况,可以通过try——catch——finally(必须执行,除非遇到System.exit(),return都不行)解决

Syetem.out.println() //黑体  System.err.println()  //红色

Throwable常用方法:、String getMessage()  //返回此Throwable的详细消息字符串void printStackTrace()  //将此throwab及其追踪输出至标准错误流void printStackTrace(printStream s)  //将此throwa及其追踪输出到指定的输出流

一个try可能带多个catch,try中含有多个不同异常分别对应多个catch处理1、写多个catch时,需要从子类写到父类的异常。2、写一个catch时,直接写Exception e

catch代码块对异常处理完毕后,程序仍会向下执行,而不会异常终止,在try代码块中,发生异常语句后面的代码是不会被执行的。

throws 用在函数上,后面跟异常类(在main函数抛出异常,不负责任,系统将强制关闭)

throw用在函数内,后面跟异常对象

包:package(需要注意:包的声明只能位于java源文件的第一行)

如果用到一个包中的许多类使用“import 包名.&;”来导入改包所有类

访问控制级别

       private     default    protected   public

同一类中   1              1                1             1

同一包            0              1                1              1

子类中        0             0                1              1

全局范围          0             0                 0              1

转载于:https://www.cnblogs.com/0405mxh/p/10124431.html

你可能感兴趣的文章
可以开发着玩一下的web项目
查看>>
oracle 中 UPDATE nowait 的使用方法
查看>>
二叉查找树中节点的删除
查看>>
JOGL简介与安装
查看>>
linux Ubuntu Kali 安装flash
查看>>
蜕变成蝶~Linux设备驱动之异步通知和异步I/O
查看>>
JavaScript超链接设置打开窗口
查看>>
Django:学习笔记(7)——模型进阶
查看>>
hdoj2042
查看>>
用js实现帧动画
查看>>
Quartz使用总结
查看>>
VS2017专业版和企业版激活密钥
查看>>
List of Eclipse Plugins
查看>>
实验7
查看>>
DataReader和DataSet的异同之处。
查看>>
ping结果中TTL是什么意思
查看>>
arm下的gcc内联汇编
查看>>
winform DevExpress报表使用
查看>>
[Leetcode] maximun subarray 最大子数组
查看>>
URL参数获取/转码
查看>>