第三篇:Father son=new Son()

一、前言

多态是同一个行为具有多个不同表现形式或形态的能力。Java中多态即动态绑定、后期绑定或运行时绑定,是指对象的类型在运行时确定而不是在编译时确定。

二、代码分析

2.1 仅父类

代码示意:

public class Test {
 
	public static void main(String[] args) {
		Father father=new Father();
		System.out.println(father.name);
        father.f1();
	}
 
}
class Father{
	protected String name="Name";
	
	protected void f1(){
		System.out.println("The f1 in Father");
	}
 
}

输出结果:

Name
The f1 in Father

2.2 继承【Son son=new Son()】

代码示意:

public class Test {
 
	public static void main(String[] args) {
		Son son=new Son();
		System.out.println(son.name); //继承未重写   仍是父类属性
		son.f1();//继承未重写  仍是父类方法
		System.out.println(son.habbit);//重写  子类属性
        son.f2();//重写   子类方法
        
        System.out.println(son.age);//新增   子类属性
        son.f3();//新增   子类方法
	}
 
}
class Father{
	protected String name="Name";
	protected String habbit="basketball";
	protected void f1(){
		System.out.println("The f1 in Father");
	}
	protected void f2(){
		System.out.println("The f2 in Father");
	}
 
}
class Son extends Father{
	protected String habbit="chess";
	protected void f2(){
		System.out.println("The f2 in Son");
	}
	
	protected int age=12;
	protected void f3(){
		System.out.println("The f3 in Son");
	}
}

输出结果:

Name
The f1 in Father
chess
The f2 in Son
12
The f3 in Son

2.3 多态【Father son=new Son()】

代码示意:

public class Test {
 
	public static void main(String[] args) {
		Father son=new Son();
		System.out.println(son.name); //继承未重写   仍是父类属性
		son.f1();//继承未重写  仍是父类方法
		System.out.println(son.habbit);//重写  父类属性
        son.f2();//重写   子类方法
        
     //   System.out.println(son.age);//新增   编译报错
     //   son.f3();//新增   编译报错
	}
 
}
class Father{
	protected String name="Name";
	protected String habbit="basketball";
	protected void f1(){
		System.out.println("The f1 in Father");
	}
	protected void f2(){
		System.out.println("The f2 in Father");
	}
 
}
class Son extends Father{
	protected String habbit="chess";
	protected void f2(){
		System.out.println("The f2 in Son");
	}
	
	protected int age=12;
	protected void f3(){
		System.out.println("The f3 in Son");
	}
}

输出结果:

Name
The f1 in Father
basketball
The f2 in Son

三、面试金手指

Father father=new Father() 属性:父类
方法:父类
Son son=new Son() 继承未重写 属性:父类非私有
继承未重写 方法:父类非私有
重写 属性:子类
重写 方法:子类
新增 属性:子类
新增 方法:子类
Father son=new Son() 继承未重写 属性:父类非私有
继承未重写 方法:父类非私有
重写 属性:父类
重写 方法:子类
新增 属性:编译报错
新增 方法:编译报错

四、尾声

Father son=new Son(),完成了。

天天打码,天天进步!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祖母绿宝石

打赏一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值