Java06/继承/super/this/重写

一 继承

面向对象的三大特征:封装性继承性多态性
继承是多态的前提,如果没有继承,就没有多态;
继承是面向对象设计方法的主要特征

1. 继承的格式:
定义父类:
public class 父类名称 {
	//...
}
定义子类的格式:
public class 子类 extends 父类{
	//...
}
2. 继承中成员变量/方法的使用:

如果父类和子类的成员变量重名,则创建子类对象时,访问有两种方式:

  1. 通过子类对象直接访问成员变量(就近原则)
  2. 通过成员方法间接访问成员变量,成员变量的访问,取决于成员方法的归属
public class Zi extends Fu {
	int num = 200;
	public void method(){
		//num在子类中就存在,所以优先使用子类的num
		System.out.println(num);
	}
}

当父类中有重名变量num时,调用子类方法,将会优先使用子类中的成员变量num
继承中(重名)成员方法的访问和成员变量的访问相同,创建的子类对象归属是谁,就优先用谁,没有则向上查找

3. 区分子类方法中重名的三种变量:
  • 局部变量:直接写成员变量名
  • 本类的成员变量: this.成员变量名
  • 父类的成员变量: super.成员变量
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本类成员变量
		System.out.println(super.num);//10父类成员变量
		
	}
}
4. 方法重写:
重写(覆盖、覆写) 重载
(Override)方法名称,参数列表、返回值类型相同 (Overload)方法名称相同,参数列表不同

方法覆盖重写:创建的是子类对象,则优先用子类方法

注意:

  1. @Override为注解,写在方法前,用于检测是不是有效的覆盖重写
  2. 子类方法的返回值必须小于等于父类方法的返回值范围
    记:java.lang.Object是所有类的公共最高父类
  3. 子类方法的权限必须大于等于父类方法的权限修饰符
    记:public> protected> (default) >private
    其中default代表留空
  4. 普通方法可以重写,静态方法不能重写。
5. 继承中构造方法的访问特点:

对于有继承关系的子类,父类的构造方法先打印,子类后打印。

  • 子类构造方法中有一个默认的"super()"调用,所以总是父类构造先执行,子类构造后执行。
  • 子类构造可以通过super关键字来调用父类的构造。
  • super的父类构造调用,必须是子类构造方法的第一个语句,且是唯一的。
6. super关键字的三种用法:
  • 在子类的成员方法中访问父类成员变量
  • 在子类的成员方法中访问父类成员方法
  • 在子类的构造方法中访问父类构造方法
public class Zi extends Fu{
	int num = 20;
	public Zi(){
		super();//访问父类的无参构造方法
	}
	public void method(){
		System.out.println(super.num);//父类中的num
	}
	public void me(){
		super.me();//访问父类的me方法
	}
}
7. this关键字的三种用法:
  • 在本类的成员方法中访问本类中的成员变量
  • 在本类的成员方法中访问本类中的成员方法
  • 在本类的构造方法中访问本类中的构造方法
    注意:this在构造方法中,也必须是第一个语句,且唯一,因此不能与super方法一起使用
public class Zi extends Fu{
   int num = 20;
   public Zi(){
   	this(10);//本类的无参构造,调用本类的有参构造
   }
   public Zi(int n){
   }
   public void method(){
   	this.me();//访问本类中的成员方法
   }
   public void me(){
     System.out.println(this.num);//访问本类中的成员变量
   }
}
发布了54 篇原创文章 · 获赞 6 · 访问量 4830

猜你喜欢

转载自blog.csdn.net/glpghz/article/details/103200672
今日推荐