JAVA继承与多态

/**
 * 实例化先后顺序:父类的静态变量、子类的静态变量、父类的非静态变量、父类的构造器、子类的非静态变量、子类的构造器
 * 
 * @author zhang
 * 
 */
public class Father {
	public static void main(String[] args) {
		System.out.println("Son constructor");
		Father f = new Son();
		f.f();// 如果子类重写父类的方法,会调用子类的
		f.g();// 如果子类没有该方法,则调用父类的
		((Son) f).h();// 子类有父类没有时,需要强转成子类的类型才可调用
	}

	private int i = 9;

	protected int j;

	public Father() {
		System.out.println("i=" + i + ",j=" + j);
		j = 39;
	}

	int a = print("if before father constructor");
	int b = print("after father constructor");

	private static int x1 = print("static Father.x1 initialized");

	public static int print(String s) {
		System.out.println(s);
		return 47;
	}

	public void f() {
		System.out.println("Father.f()");
	}

	public void g() {
		System.out.println("Father.g()");
	}
}

class Son extends Father {

	public Son() {
		System.out.println("k=" + k);
		System.out.println("j=" + j);
	}

	public int k = print("Son.k initialized");

	private static int x2 = print("static Son.x2 initialized");

	@Override
	public void f() {
		System.out.println("Son.f()");
	}

	public void h() {
		System.out.println("Son.h()");
	}
}

 控制打印:

static Father.x1 initialized

Son constructor

static Son.x2 initialized

if before father constructor

after father constructor

i=9,j=0

Son.k initialized

k=47

j=39

Son.f()

Father.g()

Son.h()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到了头歌实践作业中关于Java继承多态的练习和任务描述。引用给出了Java继承的语法示例,可以使用extends关键字实现类的继承。引用提到了方法的重写和重载是Java多态性的不同表现,重写是父类与子类之间多态性的一种表现,而重载则是多态的具体表现形式。 综合来看,头歌中的练习和任务描述主要涉及Java继承多态继承是一种面向对象的编程概念,它允许一个类继承另一个类的属性和方法。在Java中,可以使用extends关键字来实现类的继承。而多态性则是指一个对象可以具有多种形态,即同一个方法可以在不同的对象上产生不同的行为。在Java中,多态性的表现包括方法的重写和重载。方法的重写是指子类重新定义父类中已经存在的方法,以实现自己的逻辑。而方法的重载是指在同一个类中定义多个同名但参数列表不同的方法。这些概念都是Java面向对象编程中重要的概念,对理解和应用Java编程语言非常重要。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [头歌实践-Java继承多态](https://blog.csdn.net/weixin_53463734/article/details/121021181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [十三、 封装、继承多态](https://blog.csdn.net/CaesarQu/article/details/117373505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值