nxmxx / blog

记录我的学习路程和我的进步
1 stars 0 forks source link

继承 #16

Open nxmxx opened 4 years ago

nxmxx commented 4 years ago

1.继承 (1)继承格式

(2)继承概述 含义:为了更新或者利用原代码的功能,在不修改源代码的基础上,将源代码的功能继承,在源代码的基础上增加新功能或者方法的重写去更新旧功能。

(3)继承中成员变量的访问特点 1)父类 package cn.javase.video.study.jicheng;

public class fu { int numFu =20; int num =3; public void methodfu(){ System.out.println(num); } } 2)子类 package cn.javase.video.study.jicheng;

public class zi extends fu { int numZi =32; int num =1; public void methodzi(){ System.out.println(num); } }

3)父类子类使用 package cn.javase.video.study.jicheng;

/*

//间接 zi zi = new zi(); //父类与子类都存在num变量,但现在是通过成员方法间接访问。 // (1)如果是子类方法,则固然先在子类方法中找,找不到在向上找 zi.methodfu();//输出fu // (1)如果是父类方法,则固然先在父类方法中找。 zi.methodzi();//输出zi } } (4)区分子类方法中的三种重名变量 使用super关键字,指定是父类中的成员变量。 父类 子类 含主函数调用父类子类的类 Int num; int num; 子类 对象 =new 子类(); Public void method (){ 对象.方法(); System.out.println(num);//子类中的局部变量 System.out.println(this.num);//本类中的成员变量 System.out.println(super.num);//父类中的成员变量

}

(5)继承中成员方法的访问特点 父类。子类已经继承父类,创建新的类后使用父类和子类中重名的方法时: 使用重名方法,是谁的对象(父类或子类)就优先使用谁的方法,若找不到,就向上找,但绝不会向下找,因为父类不知道自己的子类是谁。 (6)继承中方法的覆盖重写 1).重写 : 在继承关系中,方法的名称一样,参数也一样; 2)重载与重写的区别: 两者方法名都相同,但重载的参数必须不同,重写的参数必须相同。 3)使用特点: 创建的是子类对象,则优先使用子类方法,找不到向上找。 4)注意事项 a.必须保证父子类的方法名称相同,参数列表不同; @Override(注解)写在重写方法的前面对方法进行检查,是否符合方法重写规则。@Override也可以不写,只要满足重写要求,也可以重写方法。 @Override的使用: 含义:为了更新或者利用原代码的功能,在不修改源代码的基础上,将源代码的功能继承,在源代码的基础上增加新功能或者方法的重写去更新旧功能。

b.子类方法的返回值必须是父类方法的子集,也就是小于等于父类的返回值范围; object类是最高父类,object以下有string int 等等。 c. 子类方法的权限必须大于等于父类方法的权限修饰符: 权限大小:public>protected>(default)>private; 备注:default是不用写的,留白就行。

(7)super关键字的三种用法

(8)this关键字的三种用法 1)本类方法中,访问本类的成员变量和本类的另一个方法

2)本类方法中,访问本类的另一个构造方法

(9)this,super内存图解 1).Damo创建对象后,因为子类继承了父类,所以new Zi();的堆空间中,有子类的成员方法、成员变量,而子类里又包含父类的成员方法、成员变量。 2).this,super关键字在其特定的范围内寻找对应的成员变量或成员方法。

(10)继承的三个特点 1).java语言是单继承的: 一个类的直接父类只能是唯一的,若一个类有多个直接父类,则会出现混乱。

2)java语言可以多级继承:

3)一个父类可有多个子类,但一个子类只能有一个直接父类: