一,继承
1,继承的意义
·代码的复用
·表现两个事物之间的 is - a的关系。例如:Student is a Person.学生是人的一个子类
·实现代码的扩展,事物的分类扩展,事物的分类更具体
2,集成的语法
【修饰符】 class 子类 exdents 父类{
}
子类:又称派生类。
父类:又称超类,基类
3,继承的特点和要求
·Java中类与类之间,只支持单继承。
·java中类支持多层继承
·java、的根父类是java.lang.Object类,所有引用数据类型的根父类都是他。如果一个类没有明确的说明他的父类是谁,那么他的父类就默认为Object
·子类会继承父类的所有的成员变量,成员方法。但是如果父类中把成员方法私有化了,那么子类中是无法直接使用的。
4,子类不能继承父类的构造器,但是子类构造器的首行必须一定会调用父类的构造器
·子类的构造器默认是会调用父类的无参构造。如果写 super();也是表示调用父类的无参构造。
·子类的构造器”首行“,可以通过super(实参列表); 语句 明确 调用父类的有参构造。
如果父类没有有午餐构造,子类的首行有没有写 super(实参列表);语句,那么代码就报错了。
5.方法的重写
方法的重写(Override):当子类继承了父类的某个方法时,子类中关于该方法的功能实现有别于父类该方法的实现,那么子类就可以对该方法进行重写。
重写的要求:
·方法名必须相同
·(形参列表):必须完全相同(类型,个数,顺序三者完全相同,和参数名无关)
·返回值类型
void 或基本数据类型必须完全相同
·引用数据类型<=
-
如果父类被重写的方法返回值类型是Object,那么子类重写该方法时返回值类型可以是Object或Object的子类(String等)。
-
如果父类被重写的方法返回值类型是Animal,那么子类重写该方法时返回值类型可以是Animal或Animal的子类(Dog,Cat等)
-
权限修饰符:>=
-
如果父类被重写的方法权限修饰符是public,那么子类重写该方法时只能是public
-
如果父类被重写的方法权限修饰符是protected,那么子类重写该方法时可以是public或protected
-
如果父类被重写的方法权限修饰符是缺省,那么子类重写该方法时可以是缺省、protected、public(不能跨包重写,因为缺省的跨包看不见)
-
如果父类被重写的方法权限修饰符是private,那么子类不能重写它,因为private在子类中不可见。
-
6.public String toString()方法
这个方法是Object类提供的,所有类都有这个方法。
这个方法默认返回 当前对象所属的类型 @ 对象的hashCode值的十六进制形式,官方文档中,明确说明,建议子类应该重写它。
如何重写?
A:Ctrl + O快捷键
B:Alt + Insert快捷键
(3)当我们用System.out.println() 或 System.out.print()输出一个对象时,自动会调用这个对象的toString()
或者,当我们用对象与String字符串拼接时,也会自动调用这个对象的toString()
四,关键字 this、super
this 的意思
this:代表当前的对象。
构造器:代表正在new的那个对象
非静态成员方法:代表正在调用这个方法的对象
this 关键字的用法
this.成员变量
1.当构造前中,非静态成员方法中,出现了局部变量于非静态成员变量重名了,
就需要在成员变量(属性)前面加this,否则就会遵循就近原则,表示为局部变量了。
2.this.成员方法()