6.21学习笔记

一、类的继承

1、关键字:extends

2、格式:public 子类名(超类) extends 父类名(基类){};

3、作用:相当于把父类重新编写一遍,但不是完全编写一遍,而是一部分,我们可以给父类新添方法&属性,或者将其中的一些属性、方法改写一遍,使其符合自己的要求。

4、子类可以继承到父类的那些属性&方法?
答:1).子类和父类在同一package下
public的普通方法和属性可以被子类继承下来直接调用。
protected的普通方法和属性可以被子类继承下来直接调用。
default的普通方法和属性可以被子类继承下来直接调用。
2).子类和父类不在同一个package下
public的普通方法和属性可以被子类继承下来直接调用。
如果父类中的普通方法和属性被修饰为protected,那么可以被子类继承下来直接使用(注意:必须在子类中进行调用)

5、在继承的过程中不需要所有方法、属性全都写一遍,而只是需要写一下需要重写或新增的内容即可,其他的一律继承父类,不予以改变。

6、那么在调用方法时,是调用子类的方法还是父类的方法呢?
答:这要分情况:假若在子类中对此方法进行了重写或新增,那么就调用子类的方法,否则调用父类的。

7、继承有什么意义呢:
答:1).提高代码的重用性。2).提高程序的扩展性。

二、方法重写

1、说明:方法重写类似于方法重载,但不等价,方法重写名字、参数要和父类的原方法一模一样,相当于将原方法替代了,而重载并没有替代的功能,且要求参数绝对不能完全一样。

2、要求:
1).必须要存在继承关系
2).方法的返回值数据类型,方法名,方法所带的参数个数,参数类型和参数顺序都必须要和父类完全相同。
3).子类中方法的访问修饰符可以大于或者等于父类方法的访问修饰符。
【注:大——>小:public   protected   default   private】

三、自动转型:
1、能够进行转型的条件:两类之间必须要存在继承关系。

2、格式:
父类名   对象名  = new 子类构造方法(参数值,...);

3、说明:首先需要明确一定,转型之后生成的对象大方向任然是属于子类的,但是又不是完全纯粹的子类,它的特点就是,生成对象的方法、属性和子类一模一样,但是他的适用范围比子类的要大,和父类的一模一样,也就是可以接收的参数范围和父类一样。

4、缺点:使用自动转型后,子类之中增添的方法不能用了,而重写的、父类中原有并没改写的任然可以使用

5、假设父类:animal 子类:dog   cat
   我们可以这样定义:
   animal an = new dog();
   an.(dog的方法);
   接下来我们可以这样定义
   an = new cat();
   那么接下来an 就属于cat类了;
   an. (cat的方法)

四、定义包

1、package不等于import

2、当一个类放在一个文件夹之中时,假设文件夹名是file,那么在文件头回出现这样一行字:package file;意思并不是要引入file中的东西,纯粹只是在文件头显示这个类的位置罢了。而若要引入文件夹之中的东西则用import;

3、比如文件夹:package file.yyj.study;其实引入的只有一个包,在系统显示的是:file文件夹之中有个叫yyj的文件夹,yyj之中有一个叫study的文件夹。

猜你喜欢

转载自yuyongjia.iteye.com/blog/1565850