方法的重载(Overloading)与重写(Override) Abstract(抽象) 和 Final(最终)关键字

方法的重写

方法的重写有两个约束条件:
一、(出现在继承中,处于子类中)在子类中,重写的方法必须与父类中的被重写的方法完全相同,局限于(方法的名字,方法的返回值,方法的参数)完全一致。
二、子类中重写的方法、访问权限修饰符可以与父类相同或者大于父类。
方法重写后,在调用子类中被重写的方法时,会优先调用子类中的被重写的方法。

父类:
	class A {
		public void test() {
		}
	}
子类:
	class B extends A{
		@Override
		public void test() {
		}
	}

访问权限修饰符

修饰符本类同包非同包子类其他
private
default
protected
public

(protected)提示:
父类中的属性被protected所修饰,且子类与父类不在同一(package)中,子类仍可调用父类中被protected修饰的成员方法或成员变量。
代码示例:

方法的重载

方法的重载:
一、方法的名字要与被重载的方法相同。
二、重载的方法的参数列表、参数类型、个数必须不同。
三、重载的方法与返回值的类型无关。
方法的重载和方法的重写的区别:
方法的重载存在于同类之中而方法的重写则存在于继承的子父类或者接口之中。

abstract关键字

abstract :(抽象的、摘要)可以修饰的有:类、成员方法
【要点】
1️⃣被abstract修饰的方法没有实现(方法体);并且,被修饰的方法所处的类必须是被abstract修饰的抽象类。
2️⃣被abstract修饰的父类中的抽象方法,其子类必须重写该方法(被abstract修饰的抽象方法)。
3️⃣被abstract修饰的类不能new对象
4️⃣抽象类中不一定只有抽象方法,但是有抽象方法的一定是抽象类。

final关键字

final:(意为:最终)可以修饰【类】、【成员方法】、【成员变量】、【局部变量】。
1️⃣类:被final修饰的类,不可以被继承,即:(断子绝孙)。如:String类。
2️⃣成员方法:被final修饰的成员方法,不可以被重写。
3️⃣成员变量:被final修饰的成员变量有且只能被赋值一次,赋值之后不可以修改;
4️⃣局部变量:被final修饰的局部变量,在被定义时,需要初始化赋值,否则报错。
Final关键字延伸:

final class Dog {   //被final修饰的类、不可以被继承
	String name;
	int age;
}

class Test {
	public static void main(String[] args) {
		final Dog dog = new Dog();
		dog.name = "小黑";
		dog.age = 12;
 		//  那其中的属性还可以修改么?
 		dog.name = "小白";   ✔
 		dog.age = 11;//可以修改,详解如下:
 		// 对么?
 		dog = new Dog();}
}

延伸详解:
此时的dog在内存空间的样式是这样的:
在这里插入图片描述
在这里插入图片描述

当 对Dog类创建(实例化)对象的时候;即 new Dog()时会在堆区开辟一块空间来存储。而Dog dog中的dog是个引用型变量 存储的是一个地址,而这个地址指向的是堆中的 new Dog()和存储在堆区的数据,也就是说    被final修饰的 Dog dog 中的 dog(存储的是地址)这个引用型变量的地址是不可以改变的。而上述代码中dog.name = "小白"改变的是堆区Dog的属性,而不是改变的地址,因此此代码是可行的。而其下述代码中则是又重新创建了一个新的对象和新的地址,把新的地址赋值给了dog,这一步是改变dog的地址指向,也就是说改变了dog存储的地址,因此,此举是错误的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值