java学习笔记(3)

1:重写和重载的对比

  • 重载:Java允许用同一个名字去定义多个方法,只要方法的参数列表不同,即参数的数量,类型不完全相同。方法调用时根据实参列表的个数和类型自动调用匹配方法。
  • 重写:在类的继承过程中,如果子类中新增的变量和方法与父类中原有的数据和方法同名,则会重写从父类继承来的同名变量和方法。重写和重载类似,但更严格:不仅要求同名。还要求参数列表也相同。

2:super关键字的使用
如果想在子类中访问父类中被覆盖的成员,可以使用关键字super来解决这一问题,其基本格式如下:
访问父类成员:super.成员变量 或 super.成员方法(参数列表)
访问父类构造方法:super(参数列表)。
生成一个子类的实例是,首先要执行子类的构造方法,但如果该子类继承自某个父类,则执行子类的构造方法前,系统将先自动调用父类的无参构造函数。对于父类含参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,这个调用语句必须是子类构造方法中第一条可执行语句。


public class Hello {
	public static void main(String args[]) {
     Manager m=new Manager();//用先父类中的构造函数进行初始化
     System.out.println(m.getDetails());
     System.out.println("department:"+m.department);
	}
}


class Empoyee{
	private String name;
	private int salary;
	public String getDetails() {
		return "Name:"+name+"\nSalary:"+salary;
	}
	Empoyee(){
		name="Tom";
		salary=1234;
	}
}

class Manager extends Empoyee {
	public String department;
	public String getDetails() {
		System.out.println("I am in manager");
		return super.getDetails();
	}
	Manager()
	{
		super();//调用父类的构造函数,且必须是子类构造函数方法中第一句
		department="sale";
	}
}

与super不一样,关键字this的主要作用在于表示对当前对象的引用。

3:抽象类
关键字abstract修饰的类称为抽象类,抽象类是一种完全没有实现的类。不能用它实例化任何对象,主要用来描述一些概念性的内容,然后在子类中具体去实现这些概念。抽象类可以理解为是普通类中加入了抽象方法的类,抽象方法只能被public和protect修饰,抽象类不可以被final修饰,因为final修饰的类不可以被重写。而抽象类的抽象方法在子类中需被重写。
(看到了一个关于抽象类写的还不错的一篇文章 地址贴在下面https://blog.csdn.net/wei_zhi/article/details/52736350/)

4:接口
接口是抽象类的一种变体,接口是用关键字interface来定义的。接口中所有方法都是抽象的。
接口实现是通过关键字implements来实现的。如下:

class 类名 implements 接口名{
   ……//类体
  }

其中,被实现的接口可以有很多个,之间用逗号分隔。这一点,类继承是无法做到的。另外,**接口也可以继承接口。**但是最后这些接口总是会被一个类实现,在实现的类里,必须重写这些方法。

5:抽象类和接口的区别:
(1)抽象类中的方法不一定都是抽象的,而接口中的所有方法都是抽象的。

(2)接口中的所有数据都是公有静态常量,即具有public,static,final属性,但一般不写这些修饰符。

(3)因为接口中所有方法都是抽象的,public的。因此必须在实现该接口的子类中重写所有这些方法。

在使用两者时候:
(1):如果想拥有自己的方法,可以选用抽象类;抽象类中可以有普通方法来实现自己的一些操作。
(2):如果实现多重继承,可以选用接口,类不可以多重继承。
(3):如果操作一直更改,使用类。使用接口的话,需要在实现了接口的所有类中逐一更改。

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、付费专栏及课程。

余额充值