1. java构造器

  构造器也叫构造方法(constructor), 用于对象初始化. 构造器是一个创建对象时被自动创建的特殊方法,目的是对象的初始化. 构造器 的名称与类的名称一致. JAVA通过new关键子来调用构造器,从而返回该类的实例,是一种特殊的方法.

  备注要点:

  a. 通过new关键字来调用

  b. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型是本类), 不能在构造器使用return返回某个值.

  c. 如果没有我们定义构造器,则编译器会自动定义一个无参构造器. 如果已定义构造器,则不会自动添加

  d. 构造器的方法名必须与类名一致.

  举例一: 说明构造器的用法

public class Y_test1 {
public Y_test1(){
System.out.println("无参构造器");
} public Y_test1(int i){
System.out.println("有参构造器");
} public static void main(String[] args) {
System.out.println("测试构造器");
Y_test1 t = new Y_test1();
}
}

  打印结果

测试构造器
无参构造器

  2. java重载与重写

  在举例一中, 我们使用类一个特殊用法, 重载,这个在javascript中没有的,当然是java先有的重载.那么,什么是重载? 如果同一个类中包含了两个或者两个以上方法名相同,方法参数个数,顺序或者类型不同的方法则称为重载. 重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同类型的参数个数或者类型. 重载是一个类中多态行的表现. 举例一中构造器就用了重载, 无参构造器和有参构造器.

  提及重载, 另一个与其名字相近的是重写(Overriding)

  a) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

  b) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

  c) 子类函数的访问修饰权限不能少于父类的;

  没有重写举例二

package cn.sxt.oop;

public class TestObject {
public static void main(String[] args) {
Object obj = new Object(); TestObject o = new TestObject();
System.out.println(o.toString());
}
}

  打印

cn.sxt.oop.TestObject@7852e922

  有重写举例三

package cn.sxt.oop;

public class TestObject {
public static void main(String[] args) {
Object obj = new Object(); TestObject o = new TestObject();
System.out.println(o.toString());
}
// 所有对象都是继承字Object,所以开发重写Objecy方法
public String toString(){
return "返回子类重写";
}
}

  打印

返回子类重写

  对比重载与重写, 总结:

比较 重载 重写
名称 Oveload Override
函数签名 只要求函数的参数个数或类型不一致,对返回值没要求 函数的参数个数、类型、返回值都必须完全一样。
作用 同一个类或者具有继承关系的两个类中 只能发生在继承关系的两个类中
访问权限 没有限制 子类覆写方法的访问权限必须大于或等于父类的方法的访问权限

  

  

  

JAVA构造器,重载与重写的更多相关文章

  1. Java:重载和重写

    Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...

  2. Java的重载和重写差别(面试常见)

    今天在看C#的基础知识,同是面向对象的语言.看到重载和重写.我突然想了半天.有点模糊了,立即度娘一番.回忆起自己在北京实习的项目,实际上,开发中经经常使用到重载和重写,自己不去总结罢了.今天找了一份比 ...

  3. Java中重载和重写的区别

    重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. 2) Java的方法重载,就 ...

  4. java方法重载和重写

    1.java的方法重载和重写,表示两种不同的类型.this关键字,出现在类的构造方法中,代表使用该构造方法所创建的对象.,this可以出现在实例方法中核构造方法中.但是不能出现在类方法中.实例方法只能 ...

  5. 【JAVA】重载和重写的区别

    重写(Overriding) 重写规则 1. 参数列表:必须与被重写方法的参数列表完全匹配.  2. 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同  3. 访问级别:一定不能比被 ...

  6. java的重载与重写

    原文链接http://zhhll.icu/2020/11/11/java%E5%9F%BA%E7%A1%80/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/%E9%87%8 ...

  7. 【Java】重载与重写

    重载与重写 一.重载 定义 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可.同一个类.相同方法名,参数列表不同:参数个数不同,参数类型不同. Java的重载是可以包括 ...

  8. Java类方法重载与重写

    目录 - 方法重载 - 方法重写 @(Java类方法重载与重写) - 方法重载 1.方法名相同 2.参数列表不同 public void person(double height,double wei ...

  9. 《Java基础知识》Java方法重载和重写

    重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类 ...

随机推荐

  1. Computer-Hunters——凡事预则立

    Computer-Hunters--凡事预则立 冲刺时间安排 时间 前端计划完成工作 11.6 完成用户注册登录界面,个人信息界面,以及热点资讯界面 11.7-11.8 匹配界面,电脑猎场界面 11. ...

  2. 每日一问:不一样的角度吐槽下 DataBinding

    我们项目采用的是 kotlin && DataBinding 处理的,可能你会疑问,既然用的是 kotlin,为啥没有用 kotlinx?新的页面当然是用的 kotlinx 啦,但我们 ...

  3. MySQL 执行插入报错 - Incorrect string value: '\xE4\xB8\xAD\xE6\x96\x87' for column 'name' at row 1

    报错的原因就是在执行插入时对Name这个字段被赋予了错误的字符串值:’\xE4\xB8\xAD\xE6\x96\x87’ 实际上就函数里面的变量接收到的值编码格式跟它定义的不一致.  使用navica ...

  4. spark 基本操作(二)

    1.dataframe 基本操作 def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName ...

  5. cad.net 依照旧样条曲线数据生成一条新样条曲线的代码段. spline生成

    Spline spl = entity as Spline; //拿到旧的spline图元... //样条曲线生成条件 var controlPoints = new Point3dCollectio ...

  6. docker 学习操作记录 1

    记录1 Xshell (Build ) Copyright (c) NetSarang Computer, Inc. All rights reserved. Type `help' to learn ...

  7. vim文本编辑器的使用

    1.简介 vim是vi发展过来的一款文本编辑器,功能非常强大. 2.vim的工作模式 vim有三种工作模式,分别为命令模式.编辑模式.末行模式: 1)命令模式:打开文件之后,默认进入命令模式: 2)编 ...

  8. SQL Server ----- 生成sql 脚本

    通过生成sql 脚本进行数据库转移 选中需要进行转移的数据库 点击生成脚本后出现 进入的是简介界面    直接点击下一步 进入到选择对象界面. 按照步骤进行设置     选择你需要的    架构和数据 ...

  9. Effective.Java第23-33条(泛型相关)

    23.  类结构层次优于标签类 有时你会碰到一个类,它的实例有一个或多个风格,并且包含一个tag属性表示实例的风格.例如,如下面的类表示一个圆或者矩形: public class Figure { / ...

  10. 科大讯飞语音芯片xfs5152CE,分享遇到的一些坑

    首先 芯片手册的I2C地址是写地址,是8位的,真正的地址是7位地址,应该是0x40,最低位是读写位,读置1,为0x81,写置0,为0x80. 如果是模拟I2C倒无所谓,最坑的是我用的是寄存器,所以必须 ...