扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
今天刚学习了Java面向对象多态,也知道是重点知识,在这里简单做个笔记,回头查漏补缺的时候再做修改(个人总结)01:
1) 多态的第一种体现形式:方法的多态
主要体现为重写和重载
重写简单形容就是父类的方法在子类中再写一次(覆盖),也就是指方法名,返回类型,参数列表(参数个数以及参数类型)都要相同,方法重写的目的主要是在子类里覆盖父类相同的方法,常用在子类父类拥有相同类型方法的时候,可以防止代码冗余。如果需要在子类调用父类的方法,需要使用 super.方法名 来实现
重写的小栗子:
class eating { public void eat(String name, int num) { System.out.println("我想吃" + num + "个" + name); } public void eat(String name) { System.out.println("我想吃" + name); } }
class unlike extends eating{ public void eat(String name,int age){ super.eat(name,age); System.out.println("我不想吃apple!"); } } unlike 继承了父类eating,此时在main中调用
public static void main(String[] args) { eating apple = new eating(); apple.eat("apple", 20); apple.eat("banana"); System.out.println("==============="); unlike unlike = new unlike(); unlike.eat("apple",30); }
则会输出
我想吃20个apple
我想吃banana
===============
我想吃30个apple
我不想吃apple!
因为子类重写了父类的eat方法,覆盖掉了父类方法,而super用于再一次调用父类的eat方法。
重载指的是让类以统一的方式处理不同类型数据的一种手段,具体指的是类中的同名方法但是方法的参数列表不同进而达到输入不同的参数列表来调用不同的重载方法的目的(这也体现了多态)。
比如:class Food{
public void eat(String name,int num){
System.out.println("我想吃" + num +"个"+name);
}
public void eat(String name){
System.out.println("我想吃" +name);
}
}
构成了重载
调用eat方法时如果参数分别输入apple ,20和apple则会分别输出:我想吃20个apple
我想吃apple。(这里也能看出方法的多态)
总结一下多态即为 "多种形态",而重写和重载就是方法的多种形态的体现,即为方法的多态。
个人理解,应该还会修改。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流