测试java继承

//测试继承中成员变量的用法
public class Test1_Extends {
	public static void main(String[] args) {
		Sub s=new Sub();
		s.show();
	}
}


class Fu{
	int sum=30;
}

class Sub extends Fu{
	int sum=20;
	public void show() {
		int sum=10;
		System.out.println(sum);
		System.out.println(this.sum);//通过this调用本类的成员变量
		System.out.println(super.sum);//通过super调用父类的成员变量
	}
}

输出结果:
在这里插入图片描述

//测试继承中成员方法的使用
public class Test2_Extends2 {
	public static void main(String[] args) {
	Sub2 s =new Sub2();
	//因为子类重写了eat()方法,从此,eat()的实现就覆盖掉了父类的原有功能
	s.eat();//子类调用父类的方法,如果重写 调用的是重写后的方法
	s.study();//子类调用自己的方法
	}
}

class Fu2{//定义父类
	public void eat() {
		System.out.println("爸爸吃肉你喝汤");
	}
}

class Sub2 extends Fu2{
	//子类特有的方法
	public void study() {
		System.out.println("我爱学习");
	}
	//重写(要求:方法申明和父类完全相同) 修改父类原有的功能
	public void eat() {
		System.out.println("儿子吃肉爸爸看");
	}	
}

在这里插入图片描述

若要先调用父类方法,使用super关键字

public void eat() {
		super.eat();
		System.out.println("儿子吃肉爸爸看");
	}	

在这里插入图片描述
继承中构造方法的使用

1.子类创建对象时,默认会访问父类的无参构造方法
2.在子类构造方法的第一行,都有一条默认语句:super();
3.父类没有无参构造时,可以在子类中用super调用父类的其他构造方法。

//测试继承中构造方法的使用
public class Test3_Extends3 {
	public static void main(String[] args) {
		Sub3 s=new Sub3();
		
	}
}

class Fu3{//创建父类
	public Fu3() {
		System.out.println(1);
	}
}

class Sub3 extends Fu3{//创建子类
	public Sub3() {
		super();
		System.out.println(2);
	}
}

在这里插入图片描述

class Fu3{//创建父类
	//提供了含参构造时,无参构造就没有了
	public Fu3(int i) {
		System.out.println(1);
	}
}

class Sub3 extends Fu3{//创建子类
	//super()会自动调用父类的无参构造
	//当父类没有无参构造时可以调用其他构造
	public Sub3() {
		super(0);
		System.out.println(2);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值