java中的继承,方法的重写,抽象类的使用
一、
1、方法的重载:
方法名相同,方法的参数或个数护着对应的类型不同,方法的权限控制、修饰符、返回值不参与比较
2、代码块:
代码块分为对象代码块,当对象被实例化时运行的代码块,可初始化对象的信息
3、类的加载过程:
一个类的创建需要先加载文件,再将静态变量(类方法)分配执行入口,然后执行静态代码块,累加载完毕,实例化过程中先将成员变量初始化,再执行非静态代码,然后执行构造方法内的方法;
二、
直传递和引用传递
1、基本数据类型:在参数传递类型中属于直传递,复制一份数据传递到参数中;
2、引用类型(对象类型):在参数传递过程中数据引用传递,也就是将内存地址传递过去,如果类被final修饰则该类不能被继承
3、隐式代码super()引用父类代码来执行对象的实例化
4、继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类称为子类(或派生类),被继承的类被称为父类(或超类);
注意:Java中每个类只允许有一个父类。
object类是所有类的直接或间接或父类
三、
方法的重写:
当子类中父类的方法已经不能满足子类的需求,则子类要重写父类方法。
规则:
1、方法名和参数必须相同
2、返回值:如果返回值为基本数据类型,则返回值类型必须相同。如果是引用类型,则返回值类型相同或是父子关系重写的方法返回值类型是被重写方法返回的子类。
3、重写的方法的权限不能小于被重写的方法的权限。
注意:静态方法不可被重写。
final:
1、final修饰的类不可被继承
2、final修饰的变量不可被修改
3、final修饰的方法不能被重写;(在final前添加修饰符static来定义常量)
常见错误:
java.lang.NullPointExceltion(空指针异常)
ClassCastException()类转换异常
上转型对象:
父类声明,子类实例化
上转型对象隐藏了子类自定义的功能
下转型对象:
将上转型对象还原回本来的类型对象,此时有回复原来自定义的功能
四、
ctrl+shift+o引包
import java.uti.*引用util下所有的类
System.exit(0)退出
trim()将字符最前端和最后端的空格去掉
五、
变量为空时会导致空指针异常
静态方法运行时会分配执行入口
当return时后面的代码不再执行
在Java中判断字符串是否相等有两层含义
1、判断字符串数据相等,判断字符str0.equals(str1)
2、串内存地址相同str0==str1
equals中谁确定不为null的用谁
紫色是关键字的颜色
执行静态方法时类和实例化的对象等效
六、
抽象方法:
1、只有声明方法,没有实现的方法,在非抽象子类中必须实现父类的抽象方法。
2、抽象类不可被实例化
3、抽象类中可以没有abstract方法,但一旦类中包含了abstract方法,则这个类一定是abstract类,即抽象方法的类一定为抽象类
4、非抽象子类必须实现抽象类中所有抽象方法,否则子类也必须是是抽象类
5、抽象类中的抽象方法是多态的的一种表现形式。
接口:
是一种抽象类的集合
1、可以在接口中定义常量
2、接口声明:实现类的实例化,为借口回调
3、可以实现多个父接口
常量池在方法区。
intern()将对象放入常量池
anObject instanceof String
anObject为String的子类
接口回调instanceof