java的重写、重载以及继承、多态和封装
2016-07-18 19:55
706 查看
1.重载
要了解函数的重载首先我们得有一个函数,所以我随便的写了一个求最大值的函数/*首先我们先随便定义一个函数:就比如这个求两个数最大值的。 */ public static void max(int a,int b) { int max=a>b?a:b;//三元运算符 System.out.println(max); }
之后我们来看看哪些是属于重载的函数
public static int max(int a,int b)//不属于重载,这个函数功能,传入的参数与原函数都一样,会造成引用的不明确 { int max=a>b?a:b;//三元运算符 System.out.println(max); return max; } public static void max(byte a,int b)//属于重载,重载要求必须传入的参数个数或者类型不同,这个函数属于传入类型不同 { int max=a>b?a:b;//三元运算符 System.out.println(max); } public static int max(int a,int b,int c)//属于重载,属于传入参数个数不同,返回值类型可以不同 { int temp_max=a>b?a:b;//三元运算符 int max=temp_max>c?temp_max:c; System.out.println(max); return max; } public static void max(int i,int j)//不属于重载,虽然参数名改了,但是其本质与原函数相同 { int max=i>j?i:j;//三元运算符 System.out.println(max); }
2.重写
重写必定会出现在继承时,所以我先随便创建一个父类函数/*首先我们先随便定义一个父类函数:就比如这个人的属性函数。 */ public class Person{ int age; String name; public Person(int age,String name){//构造函数,用来传入参数 this.age=age; this.name=anme; public void address(){ System.out.println("chengdu"); } public void work(){ System.out.println("engineer")} } }
public class Worker extends Person//继承 { public void address(){//将已有的函数方法再次定义,实现另一个功能。这就是重写 System.out.println("beijing");} }
3.继承
集成的关键字就是extends当继承发生时必定会存在这个单词。下面我们看看继承是怎么回事public class Worker extends Person//继承 { public void address(){//将已有的函数方法再次定义,实现另一个功能。这就是重写 System.out.println("beijing");} public void email(){//创建了一个新的方法 System.out .println("11111111@qq.com");} }
继承就是在父类的基础上,我们根据自身的需求修改一些已有的方法,或者是添加一些我们需要的方法。就像安卓开发中继承了baseadapter后,都要重写getId()、getItem()、getView()一样
4.多态
Person person=new Worker();//这就是多态
多态在安卓开发中也很常见,就比如List<String> list=new ArrayList<String>();
5.封装
private class Person{ int age; String name; public int getAge(){//实现get、set方法 return age;} public void SetName(String name){ this.name=name} }
相关文章推荐
- Java POI 读取 Execl 图片
- spring security 登录、权限管理配置
- java.io.IOException: open failed: ENOENT (No such file or directory)
- Java 基础复习实践 --- Hashcode Equals
- java之封装和抽象
- SpringMVC的参数映射问题
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- Java面向对象编程的特征
- javaweb 2
- javaweb 1
- Eclipse debug模式下使用16进制(Hex)查看变量值
- 如何理解Struts和Spring单例和多例,以及Action请求的问题
- ScheduleThreadPoolExecutor源码分析(二)
- Java在线反编译工具
- 如何调整eclipse字体大小
- java start
- ubuntu16.04安装eclipse
- ubuntu16.04下安装jdk和android studio
- Java 学习计划