java-重载、重写、多态、super、this
来源:互联网 发布:淘宝店铺标题图片 编辑:程序博客网 时间:2024/06/16 22:12
一.overload重载
//方法的重载:同名方法 overload
// 1.同一个类中 2.同一个方法名
// 1.参数的数据类型不同 2.参数的个数不同 3.参数的顺序不同
public class Demo6{ //程序运行 public static void main(String [] args){ //方法的调用 好处:提高代码的复用性 //printJiu(); 实际参数 //double a = add1(10.5,29.6);//调用add方法,他有一个返回值,我们用变量a来接收他 //System.out.println(a); //add2(10,20); } //计算两个数相加(未知:2个数 double)形式参数 ,把结果返回 有返回值有参数 public static double add1(double num1,double num2){ //代码 double result = num1+num2; return result;//返回结果 } public static void add2(double num1,double num2){//有参数没有返回值 double result = num1+num2; System.out.println("输出:"+result); } //和主方法并列 没有返回值void 没有返回值,没有参数 public static void printJiu(){ //打印九九乘法 的代码 for(int j = 1;j<=9;j++){//行数 //每一行所做的事情 for(int i = 1;i<=j;i++){ System.out.print(i+"*"+j+"="+(i*j)+" "); } System.out.println(); } //return ; 省略的 }}
二.重写(Overriding)
(1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
方法重写又称方法覆盖。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的;
@override
静态的方法一般不涉及重写
参考链接内容
三.super
super调用超类的方法和调用超类的构造器
this的两个用途:引用函数参数;调用该类的其他构造器。
super的两个用途:调用超类的方法;调用超类的构造器。
this();super()这两个调用构造器都要放在第一位
此处注明:java不支持多继承,但是支持多个层次的继承
import java.util.Date;import java.util.GregorianCalendar;public class Employee { private String name;//年龄 private double salary;//工资 private Date hireDate;//租用日期 public Employee(String name,double salary,int year,int mounth,int day) { this.name=name; this.salary=salary; GregorianCalendar calendar=new GregorianCalendar(year,mounth-1,day);//日期 this.hireDate=calendar.getTime();//获取日期的时间 } public String getName() { return name; } public double getsalary() { return salary; } public Date hireDate() { return hireDate; } public void raiseSalary(double byPrcent) { double rsalary=salary*byPrcent/100; salary+=rsalary; }}//Manager类public class Manager extends Employee { private double bonuse; public Manager(String name, double salary, int year, int mounth, int day) { super(name, salary, year, mounth, day); bonuse=0; } public double getsalary() { double basesalary=super.getsalary(); return basesalary+=bonuse; } public void setBonuse(double bonuse) { this.bonuse = bonuse; }}//ManagerTest类public class MangerTest { public static void main(String[] args) { // TODO Auto-generated method stub Manager boss=new Manager("carl Cracker", 8000, 1987, 12, 15); boss.setBonuse(5000); Employee[] straff=new Employee[3]; straff[0]=boss; straff[1]=new Employee("Hacker", 5000, 1989, 11, 10); straff[2]=new Employee("张三", 10000, 1996, 10, 15); for(Employee e:straff) { System.out.println(" "+e.getName()+" "+e.getsalary()+"时间是"+e.hireDate()); } }}
四.多态
一个Employee可以引用一个Employee类对象,也可以引用Employee的任何一个子类的对象
子类的对象指向父类的引用
多态:情况下
1.静态属性和非静态属性(调用父类)
2.静态方法(调用父类)和非静态属性(调用子类的)
缺点:多态下只会调用父类具有的。
编译时类型:泛指
运行时类型:具体
- java-重载、重写、多态、super、this
- java重载、重写和this、super
- 重写 重载 this super final
- java中this与super区别,重载和重写区别
- java方法的重载,重写,super,this,final关键字
- java方法的重载,重写,super,this,final关键字
- java方法的重载,重写,super,this,final关键字
- Java中重写与重载、this与super
- 继承、重载、重写、static、super、this
- 继承,方法重载,方法重写,this,super
- JAVA学习(七):方法重载与方法重写、this关键字和super关键字
- java面试题2--方法重写与重载、this和super关键字
- Java中对象的继承以及this和super的区别,以及重载和重写的区别
- Java 重载、重写、多态
- java中方法重写 this和super的区别
- 再学 iava基础(4)重载,重写,super,this,final关键字。
- 再学 iava基础(4)重载,重写,super,this,final关键字。
- 方法重写以及与方法重载的却别,super和this关键字的区别
- Leetcode: populating-next-right-pointers-in-each-node
- c#中txt与datagridview的数据交互
- 研究微信小程序
- Tensorflow之常用方法总结(1)
- Fox And Two Dots
- java-重载、重写、多态、super、this
- java基础之一注释
- sqoop export 问题
- OutOfMemoryError GC overhead limit exceeded
- ReactNative 设置手势密码
- linux上代码如何上传至git?
- 机器学习-->集成学习-->Adaboost
- 机器学习——随机森林算法randomForest——原理及python实现
- 《统计学习方法》笔记06:LR逻辑回归模型