【Java 面向对象】面向对象重点

面向对象重点

方法重载

方法重载(Overload)指方法名相同,形参列表不同的方法。Java 通过参数类型来判断该方法是否为重载方法。修饰符不同或返回值类型不同的方法不能称为方法重载!

例如:

public void show() {
   
    System.out.println("哦吼?");
}
public void show(String name) {
   
    System.out.println("商品名:"+ name);
}
public void show(String name, double price) {
   
    System.out.println("商品名:" + name + ", 价格:" + price);
}
public static void main(String[] args) {
   
    show();            // 哦吼?
    show("手机");       // 商品名:手机
    show("平板", 3000); // 商品名:平板, 价格:3000
}

构造器重载

构造器重载要求形参列表不同

例如:

class Dog{
   
  private String name;
  private int age;
  public Dog(){
   
    // 无参构造
  }
  public Dog(String name){
   
    this.name = name;
  }
  public Dog(String name, int age){
   
    this.name = name;
    this.age = age;
  }
}

这里有个问题,就是当需要为某个成员统一修改时,可能需要一一修改构造器。例如,需要在name成员前添加Dog: 的前缀,需要一一修改构造器。

这里可以通过this(参数)来调用对应的构造方法。

class Dog{
   
  private String name;
  private int age;
  public Dog(){
   
    // 无参构造
  }
  public Dog(String name){
   
    this.name = "Dog: " + name;
  }
  public Dog(String name, int age){
   
    this(name);  // 调用 `public Dog(String)` 构造器
    this.age = age;
  }
}

方法重写

方法重写(Override)是指子类父类的方法重写。方法重写要求方法名、形参列表相同,返回值类型、声明抛出的异常相同或更小(即子类),访问权限相同或更大

重写的方法通常使用@Override注解来修饰(避免重写错代码)。

例如:

class Bird {
   
  public void fly() {
   
    System.out.println("鸟飞咯");
  }
}
class Ostrich extends Bird {
   
  @Override
  public void fly() {
   
    System.out.println("鸵鸟不会飞……");
  }
}

toString 与 equals 方法

toString方法是将当前对象以文本的方式来表示出来,Java 默认的toString方法是类名@哈希码的格式,通常我们重写该方法将其内部的成员变量表示出来。

equals方法则是用于比较两个对象是否相同,Java 默认通过比较两个引用变量是否指向同一个对象,通常我们重写该方法使用该类的关键属性来比较。

class Person {
   
  private String name;
  private int age;
  // 有参构造
  public Person(String name, int age) {
   
    this.name = name;
    this.age = age;
  }
  // Getter / Setter 方法
  public void setName(String
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值