多态与父子类,抽象类new调用的一点区别-----学习日志
2016-04-25 10:25
281 查看
chinese a=new chinese();
a.say();
Amerca b=new Amerca();
b.say();
==========
Person c=new chinese();
c.say();
Person d=new Amerca();
d.say();
以上两者其实是一样的实现效果。不过一个是继承类子类类型,一个是多态父类类型。
用多态的时候有一个前提就是必须是继承类。这样用父类类型才能调用子类中重写的方法。
=========
public class Person {
public void say(){
// System.out.println("人类有说话的能力"); 父类中这一句有没有都可以正常实现。甚至可以直接转化抽象类public abstract say();
};
}
假如你重新创建一个renlei的抽象类
public abstract class renlei {
public abstract void say();
public void say1(){};
}
效果一样,可以用继承,多态两种方法调用。
japanese e=new japanese();
e.say();
renlei f=new japanese();
f.say();
总结成一句话就是
子类有相同的功能抽取出来放在一个类里当父类,然后被继承。如果父类的方法没有实现可以把父类写成抽象类,就进一步简化不用谢方法体,只写方法名。
a.say();
Amerca b=new Amerca();
b.say();
==========
Person c=new chinese();
c.say();
Person d=new Amerca();
d.say();
以上两者其实是一样的实现效果。不过一个是继承类子类类型,一个是多态父类类型。
用多态的时候有一个前提就是必须是继承类。这样用父类类型才能调用子类中重写的方法。
=========
public class Person {
public void say(){
// System.out.println("人类有说话的能力"); 父类中这一句有没有都可以正常实现。甚至可以直接转化抽象类public abstract say();
};
}
假如你重新创建一个renlei的抽象类
public abstract class renlei {
public abstract void say();
public void say1(){};
}
效果一样,可以用继承,多态两种方法调用。
japanese e=new japanese();
e.say();
renlei f=new japanese();
f.say();
总结成一句话就是
子类有相同的功能抽取出来放在一个类里当父类,然后被继承。如果父类的方法没有实现可以把父类写成抽象类,就进一步简化不用谢方法体,只写方法名。
相关文章推荐
- 4月.site域名总量十强:阿里云季军 市场份额涨1%
- android so文件的加载过程以及常规错误处理
- Linux mm_struct基础
- java设计模式—工厂模式
- 随机过程--Metropolis-Hastings算法
- JAVA--适配器模式(Adapter)--设计模式六
- Keil-MDK 中 [WEAK] 的作用
- 配置文件通配符的问题
- VIM+ctags+cscope
- php 好用的函数
- Windows和Linux下Mysql 重置root 密码
- sg函数训练——开窍篇
- C++之“友元类”学习笔记
- Android 开发推荐书籍
- matlab中冒号的用法
- 开源日志记录工具log4j
- 第一阶段冲刺总结07
- iOS 压缩与裁剪图片问题
- Linux find xargs rm .orig
- C# 去除字符串里的重复字符