JAVA基础final,object, abstract,interface,单例,多态,内部类

1.final

final修饰的类不能有子类

final在修饰方法的时候方法不能被重写

final定义的变量必须初始化值,并且不能被更改

空白final:在类中,允许把成员变量的赋值放到构造方法里

2.Object

equals //默认比较两个地址

hashcode //获取哈希码值

toString //默认调用

getClass获得当前对象的字节码文件对象,一个类只有一个字节码文件对象

clone

要想使用clone方法,当前类必须实现Cloneable接口

要想使用必须要重写这个方法

不是所有系统类都实现了他,实现了他的有ArrayList,LinkedList等

3.abstract

抽象类/抽象方法

类里面有抽象方法,一定是抽象类

对于抽象类,可以有抽象方法,可以有普通方法,抽象类里的抽象方法只定义

普通类能直接创建对象

抽象类必须通过被继承来实现

abstract,final,static,private可否同时使用

①abstract不能与final,static,private任意一个关键字公用,

因为抽象类必须被继承来实现,而final修饰的类不能被继承

static修饰可以被类名直接调用,而抽象方法没有方法体

abstract修饰的方法需要被子类重写,而private修饰的方法只能自己类内部访问

4.interface

类和类之间是单继承(extends)

接口和接口是多继承(extends)

接口的功能:间接的实现多继承

接口也是抽象的

一个类可以同时实现多个接口 以,隔开

一个类同时实现多个接口的同时,如果两个接口中有相同的方法名,无论接口中是否实现,必须在类中重写该方法

从JDK1.7开始:接口中允许有方法的实现,但是方法必须使用static或default实现

5.设计模式

23种设计模式–任意一种设计模式都由类实现

单例设计模式

将某个功能全局化,减少类与类的关系,提高内聚性,降低耦合性

①一个类在整个程序当中只允许有一个对象

②提供一个全局访问点

③提供出去

④别人怎么使用

饿汉式:在线程中不需要考虑安全,本身就是安全的

直接在类内部建立对象的时候赋值;

private final static SingleInstance s=new SingInstance();

懒汉式:

private static SingleInstance s=null;

在类内部方法里赋值;

模板设计模式

最重要的应用:HttpServlet中的servlet()与Servlet中的get(),post()方法形成了模板设计模式,Servlet是HttpServlet的子类,

Servlet执行时,调用父类的servlet()方法,父类的servlet()中调用子类的(父类中定义的抽象类,子类中实现)方法;

6.多态

父类的引用指向子类的对象

动态类型,动态绑定,动态加载

继承是多态的前提

Person person=new Student();

只有运行才确定person指向Student

person只能直接调用父类有的方法,不能调用student中有而父类中没有的方法

向下转型:为了调用子类特有的方法

继承中:调用父类和子类同名的成员变量,看子类,会把父类的成员变量覆盖

多态中:调用父类和子类同名的成员变量,编译的时候能不能访问看父类,运行的时候看父类的值,不会覆盖

成员方法:编译的时候看父类,运行的时候看子类

静态成员方法:编译与运行都看父类

7.内部类

定义在一个类的内部的类,内部类的地位与外部类的成员变量,成员方法平等

功能:间接实现多继承

方便定义

只有外部类可以访问内部类的方法,包括私有成员变量

局部内部类

定义在一个方法中的类

增强了代码的可读性和可操作性

静态内部类

Out.Inner a=inner=new Out.Inner();

匿名子类对象

①使用已有的子类对象创建匿名子类对象

new kidsClass().fangfa();

②使用父类直接创建匿名子类对象

只能使用一次,每次都可以使用自定义的不同功能

new SuperClass(){

重写父类的方法

也可以写自己的方法

}

匿名内部类

定义在一个类方法中的匿名子类对象,属于局部内部类

充当参数

充当返回值

除了new Object()之外,所有的匿名对象都是匿名内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值