老王学java六周第三天

继承中成员变量的访问特点:
在父子两个产生了继承关系之后,那么如果使用其中成员变量有怎样规则: 有两种方式
1,直接 通过子类对象访问成员变量:(也就是说new上一个子点它 ,就是直接点)
等号左边是谁就优先有谁,没有则向上找
2,简接 通过成员方法访问成员变量:
该方法属于谁,就优先用谁,没有则向上找。

父类 当中 能定义成员变量,也能定义成员方法

在这里插入代码片public class Fu {
	int numFu = 10;
	
	
	int num = 100;
	
	public void methodFu(){
		//使用的是本类当中的num,不会向下找子类的
		System.out.println(num);
	}
}

 

/子类当中 能定义成员变量,也能定义成员方法

public class Zi extends Fu{

int numZi = 20;


int num = 200;

public void methodZi(){
	//因为本类当中有num,所以这里用的是本类num ,如果没有才往上找
	System.out.println(num);
}

}


public class Demo01ExtendsField {

public static void main(String[] args){
	Fu fu = new Fu();//创建一个父类对象
	System.out.println(fu.numFu);//只能使用父类的东西,没有任何
	//子类的内容,就是父亲不知道儿子,但是儿子知道父亲
	System.out.println("===========");
	
	Zi zi = new Zi();//创建一个子类对象
	
	System.out.println(zi.numFu);//10
	System.out.println(zi.numZi);//20
	System.out.println("===========");
	
	//等号左边是谁就优先有谁
	System.out.println(zi.num);//优先子类:200

// System.out.println(zi.abc);//子类和父类都没有,编译报错
System.out.println("===========");

	//调用方法
	//这个方法是子类的,那么就优先使用子类的,没有才向上找
	zi.methodZi();//200
	//这个方法是谁的?这个方法是在父类定义的,(属于父类)
	zi.methodFu();//100
	
	
	
}	

}

 如何区分三种变量重名的问题:
   
   局部变量:               	直接写成员变量名
  本类的成员变量: 	this.成员变量名
  父类的成员变量:		super.成员变量名


创建一个父类

public class Fu {

int num = 10;

}


创建一个子类

public class Zi extends Fu {

int num = 20;

public void method(){
	int num = 30;
	System.out.println(num);//30,局部变量
	
	System.out.println(this.num);//20 本类的成员变量
	//super:超级的意思
	System.out.println(super.num);//10 父类的成员变量
}

在调用

public class Demo01ExtendsField {

public static void main(String[] args){
	Zi zi = new Zi();
	
	
	zi.method();
}

}



继承中成员方法的访问特点:
在父子类的继承关系当中,创建子类对象,访问成员方法的规则:
   创建的对象是谁,就优先用谁,如果没有则向上找。
   
   
  注意事项:
  无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的,
先创建父类

public class Fu {
public void methodFu(){
System.out.println(“父类方法执行!”);
}

public void method() {
	System.out.println("父类重名方法执行!");
}

}

在创建子类

ublic class Zi extends Fu {

public void methodZi(){
	System.out.println("子类方法执行");
}
public void method() {
	System.out.println("子类重名方法执行!");
}

}

在调用

public class Demo01ExtendsMethod {

public static void main(String[] args){
	Zi zi = new Zi();//1,new 代表创建把,
	
	//调用的时候可以发现有父也有子,因为继承了
	zi.methodFu();
	zi.methodZi();
	
	
	//创建的是new了子类对象,所以优先用子类方法
	zi.method();//2,那么这里优先使用子
	
}

}

方法的重写:
概念和特点

 重写(Override)
概念:在继承关系当中,方法的名称一样,参数列表一样。
重写(Override):方法的名称一样,参数列表【也一样】。覆盖,覆写。
重载(Oveeload):方法的名称一样,参数列表【不一样】。

方法的覆盖重写的特点:创建的是子类对象,则优先用子类方法。(new的是谁就是谁)


方法覆盖重写的注意事项:

1, 必须保证父子类之间方法的名称相同,参数列表也相同。(否则你没有办法覆盖重写)
@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。
这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。

2,子类方法的返回值【小于等于】父类方法的返回值范围。
小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。

3,子类方法的权限必须【大于等于】父类方法的权限修饰符,【要么一样,要么子类比父类大】
小扩展提示:public > protected > (default) > private
备注:(default)不是关键字default而是什么都不写,留空的都是default权限。
就是 :父类是public 权限那么子类也是public 权限是可以的。但是
如果:父类是public 权限那么子类是 protected 权限以及以下的群贤是都不可以的。

public class Demo01Override {
}


创建一个父类

public class Fu {
// public void method(){

// }

public Object method (){//1,返回一个
						//2,如果这里写String
						//3,如果这里写String
	return null;//所有的应用类型都可以让null 代表
}

}

创建一个子类“

public class Zi extends Fu {
@Override//安全检测的作用,如果报错就不是覆盖重写。也可以不写,但是推荐写上
// public void method(){

// }

public Object method(){//1,写一个一样的Object是正确的
						//2,这里写一个String也是正确的
						//3,这里写Object是不对的
	
	return null;
}

}








weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值