栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

方法重载 继承 多态 构造方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

方法重载 继承 多态 构造方法

方法重载

在同一个类中定义多个方法,方法的功能类似,只是方法内参数不同,但是方法名相同。

class Hello {
    public void hello() {
        System.out.println("Hello, world!");
    }

    public void hello(String name) {
        System.out.println("Hello, " + name + "!");
    }
 }
继承

继承有个特点,就是子类无法访问父类的private字段或者private方法。例如,Student类就无法访问Person类的name和age字段:

class Student extends Person {
    // 不要重复Person类已有的字段/方法,
    // 只需要定义新增score字段/方法:
    private int score;

    public int getScore() { … }
    public void setScore(int score) { … }
}
  • toString():把instance输出为String;
  • equals():判断两个instance是否逻辑相等;
  • hashCode():计算一个instance的哈希值。

如果父类中的某一个方法不允许被子类重写,可以把该方法标记为final。同样用final修饰的类也不可以被继承。

class Person {
    public final String name;
    public Person(String name) {
        this.name = name;
    }
}

在构造方法中初始化final字段,保证实例一旦被创建就不可以被修改。

  1.private 表示私有,只有自己类能访问

  2. default表示没有修饰符修饰,只有同一个包的类能访问

  3. protected表示可以被同一个包的类以及其他包中的子类访问

  4. public表示可以被该项目的所有包中的所有类访问

一般父类中定义的变量用protected 这样可以被子类访问

多态 Polymorphic

overload 重载
override 重写

如果方法签名不同,就是Overload,Overload方法是一个新方法;如果方法签名相同,并且返回值也相同,就是Override。

方法名相同,方法参数相同,但方法返回值不同,也是不同的方法。在Java程序中,出现这种情况,编译器会报错。

多态的特性就是,运行期才能动态决定调用的子类方法。对某个类型调用某个方法,执行的实际方法可能是某个子类的覆写方法。

构造方法

构造方法目的是:规定在默认的位置输入固定类型的值

构造方法与set()和get() 两者的区别就在于:

  • 构造方法主要用于:定义一种规则,初始化值

  • setXXX()与getXXX()主要用于:修改值,获取值

如果父类没有默认的构造方法,子类就必须显式调用super()并给出参数以便让编译器定位到父类的一个合适的构造方法。

子类不会自动继承父类的构造方法

阻止继承

正常情况下,只要某个class没有final修饰符,那么任何类都可以从该class继承。

从Java 15开始,允许使用sealed修饰class,并通过permits明确写出能够从该class继承的子类名称。

向上转型

如果Student是从Person继承下来的,那么,一个引用类型为Person的变量,能指向Student类型的实例

Person p = new Student();
向下转型

为了避免向下转型出错,Java提供了instanceof操作符,可以先判断一个实例究竟是不是某种类型。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号