栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中super关键字

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中super关键字

//父类Animal
public class Animal {
	
    private String name;     //昵称(实例变量)
	protected int month;        //月份(实例变量)
	String species;  //品种       //实例变量(默认级别)
	public int temp=15;         //成员变量
	private static int st1=22;  //静态变量
	public static int st2=23;   //静态变量
	
	
	static {
		System.out.println("我是父类的静态代码块");
	}
	{
		System.out.println("我是父类的构造代码块");
	}
	
	//无参构造方法
	//父类的构造不允许被继承、不允许被重写,但是会影响子类对象的实例化过程
	  public Animal(){
		month=2;
		System.out.println("我是父类的无参构造方法");
		}
	
	//带参构造方法
	public Animal(String name,int month) {
		System.out.println("我是父类的带参构造方法");
	}

	public String getName() { 
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		this.month = month;
	}

	public String getSpecies() {
		return species;
	}

	public void setSpecies(String species) {
		this.species = species;
	}
	
	//吃东西
	public void eat() {
		System.out.println(this.getName()+"在吃东西");
	}
	
	public void eat(String name) {
		System.out.println(name+"在吃东西");
	}
	public Animal jump() {
		System.out.println("运动跳跃是一种本能");
		return new Animal();
	}
	

}





//子类Cat
public class Cat extends Animal{
	private double weight;      //体重
	public static int st3=44;
	
	
	static {
		System.out.println("我是子类的静态代码块");
	}
	{
		System.out.println("我是子类的构造代码块");
	}
	
	//无参构造方法
	public Cat() {
		System.out.println("我是子类的无参构造方法");
	}
	
	//带参构造方法
	public Cat(String name,int month) {
		
		System.out.println("我是子类的带参构造方法");
	}
	
	public void setWeight(double weight) {
		this.weight=weight;
	}
	public double getWeight() {
		return weight;
	}
	
	//跑动的方法
	public void run() {
		System.out.println(this.getName()+"是一只"+this.getSpecies()+",它在快乐地奔跑");
	}

}





//测试
public class TestTwo {
	public static void main(String[] args) {
     	Cat one=new Cat("花花",2);
	    System.out.println(one.temp);
	}
	
}


测试结果:
我是父类的静态代码块
我是子类的静态代码块
我是父类的构造代码块
我是父类的无参构造方法
我是子类的构造代码块
我是子类的带参构造方法
15

 也就是说,子类构造默认调用父类无参构造方法,若希望调用父类带参构造方法时,需要用到super关键字,并将它放在子类带参构造方法有效代码的第一行。

//父类Animal
public class Animal {
	
    private String name;     //昵称(实例变量)
	protected int month;        //月份(实例变量)
	String species;  //品种       //实例变量(默认级别)
	public int temp=15;         //成员变量
	private static int st1=22;  //静态变量
	public static int st2=23;   //静态变量
	
	static {
		System.out.println("我是父类的静态代码块");
	}
	{
		System.out.println("我是父类的构造代码块");
	}
	
	//无参构造方法
	//父类的构造不允许被继承、不允许被重写,但是会影响子类对象的实例化过程
	  public Animal(){
		month=2;
		System.out.println("我是父类的无参构造方法");
		}
	
	//带参构造方法
	public Animal(String name,int month) {
		System.out.println("我是父类的带参构造方法");
	}

	public String getName() { 
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		this.month = month;
	}

	public String getSpecies() {
		return species;
	}

	public void setSpecies(String species) {
		this.species = species;
	}
	
	//吃东西
	public void eat() {
		System.out.println(this.getName()+"在吃东西");
	}
	
	public void eat(String name) {
		System.out.println(name+"在吃东西");
	}
	public Animal jump() {
		System.out.println("运动跳跃是一种本能");
		return new Animal();
	}
	

}





//子类Cat
public class Cat extends Animal{
	private double weight;      //体重
	public static int st3=44;
	
	
	static {
		System.out.println("我是子类的静态代码块");
	}
	{
		System.out.println("我是子类的构造代码块");
	}
	
	//无参构造方法
	public Cat() {
		System.out.println("我是子类的无参构造方法");
	}
	
	//带参构造方法
	public Cat(String name,int month) {
		
        super(name,month);
		System.out.println("我是子类的带参构造方法");
	}
	
	public void setWeight(double weight) {
		this.weight=weight;
	}
	public double getWeight() {
		return weight;
	}
	
	//跑动的方法
	public void run() {
		System.out.println(this.getName()+"是一只"+this.getSpecies()+",它在快乐地奔跑");
	}

}





//测试
public class TestTwo {
	public static void main(String[] args) {
     	Cat one=new Cat("花花",2);
	    System.out.println(one.temp);
	}
	
}


测试结果:
我是父类的静态代码块
我是子类的静态代码块
我是父类的构造代码块
我是父类的带参构造方法
我是子类的构造代码块
我是子类的带参构造方法
15

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292869.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号