方法重写


方法重写
方法重写的意义是实现多态
方法重写的规则
1.在继承关系的子类中重写
2.重写的方法名、参数、返回值类型必须与父类相同
3.私有方法不能继承因而也无法重写
4.访问修饰符不能比父类更严格(一般相同的就可以)

方法重写与方法重载的对比
 位置方法名参数列表返回值访问修饰符
方法重写子类相同相同相同不能比父类更严格
方法重载同类相同不同无关无关

何时使用继承?
继承与真实世界类似,符合is-a关系的设计使用继承
继承是代码重用的一种方式,将子类都有的属性和行为放到父类中

抽象类abstract
抽象类:实例化没有意义
abstract把类和方法变为抽象的
Java中使用抽象类,限制实例化
abstract也可以用于方法——抽象方法
抽象方法没有方法体(public abstract void test(); )
抽象方法必须被定义在抽象类里
抽象方法必须在子类中被实现,除非子类是(抽象类)
public abstract void play(); //没有方法体

final用法
类不希望再被其他类继承:使用final类(类变为最终版的类)
public final class Piano extends instrument{ //....... }
方法不希望被重写:使用final方法(方法变为最终版的方法)
public final void play (){ //........}
属性值不希望 被修改:使用final修饰属性(属性变为最终版的属性)
public final class Piano extends instrument {
final int keys=88;
}
final类不能再被继承
final常量只能使用,不能修改值,常量必须要赋初值
final方法不能被子类修改,子类只可以调用



静态static
static可以用来修饰属性、方法和代码块
static修饰的属性和方法成为类属性(类变量)、类方法
示例:
public static int A;//类属性\静态属性
public static void test(){
//类方法\静态方法\工具方法
}
B.test();//类方法不需要创建对象就可以使用

类属性的使用方式: 1.对象.类属性 2.类名.类属性(推荐)
类属性与普通属性的区别:
1.使用方式的区别:
类属性不需要创建对象就可以使用,普通属性必须要创建对象
类属性:类名.属性名 普通属性:对象名.属性名
2.各自的特点:
类属性属于全局的,所有的对象共用一个属性值
普通属性是每个对象属性值是特定的,改变一个对象的属性,另一个对象的属性值不会发生变化

一个类加载顺序: 静态属性(类属性)——>静态代码块——>普通属性——>代码块——>构造
如果类有静态属性或代码块,类初始化顺序:
父类的类属性——>父类的静态代码块——>子类的类属性——>子类的静态代码块——>父类属性——>父类代码块——>父类构造——>子类属性——>子类代码块——>子类构造
静态方法与非静态方法之间的相互调用:
1.静态方法不能直接调用非静态方法,非静态方法可以直接调用静态方法
2.如果静态方法非要直接调用非静态方法, 必须要创建对象 ,通过对象.方法()来调用
静态方法: 在不使用类中普通属性的前提下,才能使用
只要类被加载,无需创建对象,就会调用类中的静态内容
例如:
public static void test(int a){
// d=30;//错误
Child child= new Child();
child.test();
}


例如:
public class Ch01 {
	public int a;
	public double b;
	/**
	 * 判断两个对象的值是否相等
	 */
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		// 判断是否是同一个对象
		if (super.equals(obj)) {
			return true;
		} else {
			// 判断是否是Ch01类型的对象
			if (obj instanceof Ch01) {
				// 强制类型转换
				// 父类转子类
				Ch01 c = (Ch01) obj;
				if (a == c.a && b == c.b) {
					return true;
				}
			}
		}
		return false;
	}
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值