抽象类

// 抽象类可以没有抽象方法,但是包含了抽象方法的类必须被定义为抽象类,如果子类没有实现
// 父类中的所有方法,那么子类也必须定义为抽象类,否则编译出错,没有抽象构造方法,也没有
// 抽象静态方法,抽象类中可以有非抽象的构造方法,不能使用final,例如水果就是抽象类,苹果,香蕉就是实现类
// final不能被继承,没有子类,不能被子类覆盖,表示常量,只能被赋一次值,private、类型的方法默认是final类型
// 引用类型的变量用final修饰,那么该变量只能始终引用一个对象,可以修改对象的内容。
// static修饰符,静态方法和变量可以直接通过类名访问,静态代码块是在java虚拟机加载类时,就会执行该块代码
// 静态变量和方法不依赖于特定实例,被类的所有实例共享,只要这个类被加载,static变量相当于全局变量
// 成员方法分为静态方法和实例方法,用static修饰的是静态方法,静态方法中不能使用this关键字,也不能访问所属类的
// 实例变量和实例方法,但是可以访问所属类的静态变量和静态方法,因为this无法定位是哪个实例,super也是与特定的实例绑定,所以也不能用
// 静态方法必须被实现,因为它不依赖于类的具体实例,也不依赖与他的子类,因此当前类必须为静态方法提供实现,
// 也就是静态方法不能被定义为抽象方法,static和abstract不能在一起使用,前者需要自力更生,后者需要具体的类实现,
// main方法之所以是static,是因为只要加载了main方法所属的类,就能执行main方法,无需创建这个类的实例
// 静态方法中不能访问实例变量和实例方法,方法的字节码都位于方法区。static代码块在java虚拟机加载类时就会执行这些静态代码块,
// 如果包含多个静态块,java虚拟机会按照他们在类中出现的顺序依次执行他们,每个静态代码块只能被执行一次,
// static代码块可以为类的静态变量赋初始值,同样也不能访问实例变量和实例方法,而必须通过实例的引用访问它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值