Java面对对象(二)

Java继承

Java中的继承是指一个类可以派生出一个或多个子类,子类会继承父类的所有属性和方法,并且可以在其基础上添加新的属性和方法。继承通过使用extends关键字来实现,在子类类声明中使用extends关键字后跟父类的类名来继承父类。

例如,我们有一个Animal类,它有一个eat()方法:

public class Animal {
    public void eat() {
        System.out.println("Animal is eating");
    }
}

我们可以在一个子类中继承它:

public class Dog extends Animal {
    // dog-specific methods and fields
}

在这个例子中,Dog类继承了Animal的所有成员,包括eat()方法,同时还可以添加自己的方法和属性。

除了继承公共方法和属性之外,继承还有一个重要的作用——实现代码重用和抽象化。通过继承,我们可以抽象出一个通用的类或接口,然后让多个类使用它,从而减少代码重复,提高代码的可读性和维护性。

Java继承的特点包括:

  1. 单继承:Java不支持多继承,每个类最多只能有一个直接父类。

  2. 多层继承:Java支持多层继承,即一个类可以继承另一个类的子类,这样可以形成继承关系的层次结构。

  3. 继承链:Java中所有类都直接或间接地继承自Object类,形成了继承链。继承链的最上面是Object类,最下面是具体的子类。

  4. 子类可以重写父类的方法:子类继承了父类的方法和属性,但是子类也可以对父类的方法进行重写,以便实现自己的特定需求。

  5. 父类的私有成员变量和方法不能被继承:父类的私有成员变量和方法不能被子类继承,子类只能访问父类的公有成员变量和方法。

  6. 子类对象可以直接访问父类的公有成员变量和方法:子类对象既可以访问自己的成员变量和方法,也可以直接访问父类的公有成员变量和方法。

Java抽象类

Java中的抽象类是一种不能被实例化的类,通常用于定义抽象的概念和方法,需要子类继承并实现其抽象方法。具体特点包括:

  1. 抽象类使用关键字abstract来修饰,且必须被声明为抽象方法。

  2. 抽象类中可以包含普通的方法。这些方法可以被继承和使用,但是抽象方法必须在子类中进行实现。

  3. 抽象类中可以包含属性,但是抽象类不能使用final关键字修饰。

  4. 抽象类不能被实例化,只能被继承。

  5. 子类必须实现父类中所有的抽象方法,否则子类也必须声明为抽象类。

  6. 抽象类可以有构造方法,但是不能使用abstract关键字修饰。

  7. 抽象类不能被声明为私有的,只能是public或者protected。

通过使用抽象类,我们可以定义一些通用的方法和属性,然后让子类实现这些方法和属性,以便达到复用代码的目的。在Java中,接口是另一种实现类似功能的方式,但是接口只能定义方法和常量,不能包含普通方法和属性。

java方法重写

Java中的方法重写(Method Overriding)是指在子类中重写父类的方法,使得子类可以自定义自己的实现方式。

方法重写的条件:

  1. 子类中的方法必须和父类中的方法具有相同的名称、参数列表和返回类型。
  2. 子类中的方法不能比父类中的方法访问级别更为严格,也就是不能更改为private或static等访问修饰符。
  3. 子类中的方法不能抛出比父类中方法更多的异常。

方法重写的作用:

  1. 子类可以覆盖掉父类的方法,实现特定的功能需求。
  2. 提高代码的复用性和可维护性。

例如,下面是一个父类 Animal 和它的子类 Dog,子类重写了父类中的 eat() 方法:

class Animal {
    public void eat() {
        System.out.println("This is an animal, it eats food.");
    }
}

class Dog extends Animal {
    @Override
    public void eat() {
         System.out.println("This is a dog, it eats bones.");
    }
}

在这个例子中,子类 Dog 重写了父类 Animal 中的 eat() 方法,实现了自定义的功能需求,提高了代码的复用性和可维护性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值