1.1 继承入门
1.1.1 什么是继承?关键字是什么?
-
让类与类之间产生关系(子父类关系)
-
extends
1.2.1 继承的好处和弊端
-
继承有哪些好处和弊端?
好处:提高了代码的复用性和维护性&&多态的前提&&子类可以使用父类非私有的成员(方法、变量)
弊端:继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性 提高了代码之间的耦合性。 -
为什么要使用继承?
当类与类之间,存在相同(共性)的内容,并且产生了is a的关系,就可以考虑使用继承,来优化代码。比如老师和学生都是人,所以就可以把人抽取成父类,他们两个类进行继承
1.3.1 继承的特点
java中的类,只支持单继承和多层继承,不支持多继承
为什么?
如果两个父类中有相同的方法,子类不知道使用的是哪一个
1.4.1 继承中成员变量的访问特点
-
在子类中使用,子父类同名的成员变量时,优先用谁的?
-
优先使用子类自己的,自己没有,才会找父类。
-
-
子父类中有同名的成员变量,如何直接访问父类的成员变量?
-
super.成员变量。
-
super: 直接指向父类
-
this和super的区别
1.5.1 继承中成员方法的访问特点
看测试类的调用流程,然后看括号中的方法,如果没有加this和super关键字,括号中的方法会默认加上this ,也就是默认去访问成员方法
1.5.1 方法重写概述和应用场景
-
什么是方法重写?
-
子父类关系中,两个方法完全相同,则是方法重写。
-
-
为什么要有方法重写?
-
因为父类方法无法满足子类需求,所以子类自己写方法将父类方法覆盖,进行增强
-
1.6.1 继承中构造方法的访问特点
2.1 抽象类
2.1.1 抽象类的概述
2.1.2 抽象类的注意事项
不能实例化,就是不能创建对象
3.1.1 final关键字
修饰变量是引用类型,表示地址值不能改变:
比如你有个类,类中有个成员方法,提供了getset方法,然后你再测试类去new了这个类
并且在创建对象的前面加了final关键字
第一次你通过set方法给其成员变量赋值,赋值成功,第二次也可以,不管多次都可以,但是你再
去new这个类,就会报错,也就是说地址值只有一个,只能创建一个对象
修饰成员变量需要注意,如果不是如下两种操作,都将报错
4.1.1 代码块
下面输出"a"为什么会报错,因为代码块中的a用完释放了,而a是在代码块中定义的
测试方法启动,输出"我是构造代码块","空参构造方法",也就是创建对象就会在对象之前执行
静态代码块当中的数据只会初始化一次