java的继承、接口方面的语法及知识
继承(inheritance):一个类只能继承一个类
代码复用
继承的语法:
class ChildClass extends ParentsClass{
10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有察哈尔右翼前免费网站建设让你可以放心的选择与我们合作。
}
父类的属性子类中都存在,只是有没有权限访问的问题
根据名字找谁是谁?
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.对象:数组对象、非抽象类类型的对象
网站题目:java的继承、接口方面的语法及知识
标题URL:http://scyanting.com/article/gichos.html