面向对象二

来源:互联网 发布:不需要网络的收音机 编辑:程序博客网 时间:2024/06/06 05:35

一、继承


1.继承的含义:
 将多个类的共性内容抽取为一个独立的类,独立的类和这些类产生关系,继承关系
 

2.Java中表示继承的格式:
extends--->class 子类名 extends 父类名{}

3.继承的好处:
1)提高了代码的复用性
2)提高了代码的维护性
3)让类与类产生了一个关系,是多态的前提

4.继承的关系:
 关系:耦合性
 类与类产生了关系,这种关系它是多态的前提条件!
 java中开发的原则:
 低耦合,高内聚!
  耦合:类与类关系,
内聚:指的是执行一件事情能力!
5.Java中继承的特点
1)在java中,只支持单继承,不支持多继承
别的语言,可能会支持多继承(class Zi extends Fu,Monther){}
2)虽然不支持多继承,但支持多层继承!

6.继承的注意事项:
A:子类继承父类,只能继承父类中非私有的成员(成员变量/成员方法)
  子类继承父类:继承父类所有是成员
  私有的成员private (成员变量/成员方法)
B:子类继承父类,不能继承父类中构造方法,但是可以通过一个super关键字间接的访问

7.什么时候使用继承呢?
继承关系体现的是一种"is a"的关系:谁是谁的一种,如果存在这这种关系,那么可以放心的使用继承关系了 !

8.Java继承中的成员关系
1)成员变量
A:子类的成员变量名称和父类中的成员变量名称不一样
B:子类的成员变量名称和父类中的成员变量名称一样,访问方式:
子类的方法访问变量的查找顺序:
在子类方法的局部范围找,有就使用。
在子类的成员范围找,有就使用。
在父类的成员范围找,有就使用。
找不到,就报错。
2)构造方法
A:子类的构造方法默认会去访问父类的无参构造方法,为了子类访问父类数据的初始化
B:父类中如果没有无参构造方法解决办法:
子类通过super去明确调用带参构造
子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
让父类提供无参构造
3)成员方法
A:子类的成员方法和父类中的成员方法名称不一样
B:子类的成员方法和父类中的成员方法名称一样,通过子类对象访问一个方法的查找顺序:
在子类中找,有就使用
在父类中找,有就使用
找不到,就报错:

9:如果在父类中没有无参构造方法,会出现什么现象?如何解决?
子类的构造方法全部报错
1)手动给出父类中的无参构造方法
2)子类继承父类,可以通过父类中的有参构造,间接访问,在子类中的构造方法的第一句话:super("传参");
3)子类中的有参构造,第一句话:this():访问当前类的无参构造方法----->间接访问父类中的有参构造
this()/super("");要写的话必须写在第一句话,防止父类多次进行初始化


原创粉丝点击