面向对象三大特征 Part 2

1.继承

1.1 继承带来的问题

子类可以通过继承获取到父类中非私有化方法,但是父类的方法,不一定满足子类的情况
不可能通过重新定义类似的方法名,完成子类特定的符合要求的方法

1.2 方法的重写

重写之后,在没有增加新的方法名的情况下,重写方法体内容,让方法满足子类,降低了开发压力,提高了效率。
@override
	要求重写方法的和父类中的方法,声明完全一致,返回值类型,方法名和形式参数列表

1.3 重写和继承带来的问题

子类继承父类可以直接使用父类的方法,但是在这种情况下我么你可以发现父类的方法是一定不能在子类中使用的
但是又没有一个强制要求

需求:

强制要求子类重写父类的方法,从语法角度约束

1.4 abstract关键字

abstract修饰的方法 要求子类强制重写

1.4.1abstract的使用

1. abstract修饰的方法没有方法体
2. abstract修饰的方法必须定义在abstract修饰的类内或者interface接口内
3. 一个普通类【非abstract】修饰的类,继承了一个abstract类,那么必须实现在abstract类内所有abstract,强制要求
4. 如果一个abstract A类继承另一个abstract B类,A类可以选择实现B类中abstract方法
5. abstract修饰的类内允许普通方法
6. abstract修饰的类不能创建自己的类对象

2. final关键字

final修饰的成员变量
	final修饰的成员变量定义时必须初始化,并且赋值之后无法修改,一般用于类内带有名字的常量使用
final修饰成员方法
	final修饰的成员变量不能被子类重写,为最终方法,可以用于一些安全性方法的定义
final修饰的局部变量
	final修饰的局部变量一旦被赋值,不能修改
final修饰的类
	final修饰的类没有子类,不能被继承
	abstract修饰的类不能被final修饰

3.static关键字

3.1 static 静态成员变量使用注意事项

1. 静态成员变量是使用static修饰的成员变量,定义在内存的【数据区】
2. 静态成员变量不推荐使用类对象调用,会提示警告
	The static field SingleDog.info should be accessed in a static way
	使用static修饰的SingleDog类neural的info变量,应该通过静态方式访问
3. 静态成员变量使用类名调用是没有任何的问题
4. 在代码中没有创建对象时,可以通过类名调用静态成员变量,和【对象无关】
5. 代码中对象已经被JVM的GC销毁时,依然可以通过类名调用静态成员变量,和【对象无关】
6. 不管哪一种方式调用静态成员变量,修改对应的静态成员变量数据,所有对应的静态成员变量数据,所有使用到当前静态成员变量的位置,都会受到影响

3.2 static修饰静态成员方法的格式

public static 返回值类型  方法名(形式参数列表) {

}

3.2.1 静态成员方法注意事项

1. 静态成员方法推荐使用静态方法调用,通过类名调用
   不推荐使用类对象调用,因为【木得对象】
2. 静态成员方法中不能使用费静态成员 ==> (非静态成员方法和非静态成员变量)
   因为【木得对象】
3. 静态成员方法中不能使用this关键字
	because木得对象
4. 静态成员方法中可以使用类内的其他静态成员【难兄难弟】
5. 静态陈冠方法中,可以通过new构造方法创建对象

3.2.2 静态成员方法的特征解释

1. 静态成员方法加载时间问题
	静态成员方法是随着.class字节码文件的加载而直接定义在内存的【方法区】,而且此时的静态成员方法已经可以直接运行。
	通过类名直接调用,而此时没有对象存在
2. 为什么静态成员方法不能使用费静态成员
	没有对象!!!!!
3. 为什么静态成员方法不能使用this关键字
	没有对象!!!!!
4. 静态成员方法可以使用其他静态成员
	生命周期一致,调用方法一致
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值