java的继承、接口方面的语法及知识

继承(inheritance):一个类只能继承一个类
代码复用
继承的语法:
class ChildClass extends ParentsClass{

}
父类的属性子类中都存在,只是有没有权限访问的问题
根据名字找谁是谁?
1.变量-> 类型 (类、接口)->接口
2.已经确定是变量
局部变量、形参->类的属性-> 外部类的属性
就近原则
构造方法:
注意默认的那个无参构造方法

优先调用父类的构造方法
如果没有明确指出,java会插入一条调用父类的构造方法(无参的)
利用super关键字:
1.调用父类的构造方法
2.去访问被隐藏的父类的属性
3.去调用被覆写的父类的方法
调用父类的构造方法一定出现在本类构造方法的第一行
this关键字的作用:
1.访问对象的属性或方法(当前对象)
2.调用其他构造方法
3.代表本对象

调用构造方法:先父类后子类
加载构造方法:先父类后子类
***必须在父类的所有初始化完再去执行子类的初始化
执行顺序:
static属性初始化是在类的加载时按顺序执行
定义时初始化、代码块初始化
普通属性初始化是在对象的构造时执行
1.定义时初始化和构造代码块按书写顺序执行
2.构造方法初始化
类的加载:
1.什么是类的加载(Node类的加载)?
从硬盘上找到Node.class,解析该文件内容,生成Node类,把Node类的信息存放在内存的方法区
2.什么情况下会触发类的加载,并且该类不在内存中
按需加载(懒加载过程)
1.实例化该类的一个对象 new Node(1);
2.使用类的静态属性或者静态方法 Main.merge(...)
3.用到子类必须先要有父类 new CNode
对象的构造、实例化 new Node
规则:
1.优先初始化父类的属性
2.按照下面的顺序执行初始化
按照代码书写顺序,执行定义时和构造代码块
再去执行构造方法
覆盖(override)(方法不是静态方法)
方法名一致,参数列表一致
方法签名:方法名称+形参·列表
方法重载:方法名称+参数列表不同
构造对象的语法:
Node node=new Node(1);
new的作用:
1)为对象计算所需内存的大小
2)申请空间
3)初始化0x0
static只能出现在成员级别
static 和对象进行解绑
abstract 关键字有什么作用?
1.修饰类·,该类是抽象类,无法被实例化的类
abstract class A{} new A是错误的
2.修饰方法,该方法是抽象方法,没有被实现的方法
abstract void method();
包含抽象方法的一定是抽象类。
抽象类不一定包含抽象方法。
fina关键字有什么作用:
1.修饰类:表示该类无法被继承
2.修饰方法:该方法无法被覆写(方法名和形参)
3.修饰变量:该变量的值只能被初始化一次,无法再次修改
final类中不可以有abstract方法
final类和final方法基本没关系
重载overload和覆写override:
1.方法签名:方法名+形参列表
重载:方法名相同,形参列表不同
2.覆写,发生在子类继承父类或者类实现接口
1).方法名和形参列表相同
2).方法的返回类型要比父类的返回类型相等或者小
3).访问限定符:访问限定符只能和父类的相同或者大
4).@Override 注解

接口:一个类可以有多个接口
interface 接口名
引用=对象;
1.引用只能指向对象,或者什么都不指向
2.数组引用、类类型引用、接口类型的引用
3.对象:数组对象、非抽象类类型的对象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章