java的继承_java中的继承(一)

在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类。在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wait方法,notify方法,getClass方法等。这些方法我会在以后文章给大家介绍,今天我们要讨论的是java中的继承。

在继承关系中一般两个角色,父类和子类,其中父类也叫基类,子类也叫派生类。比如Dog类和Animal类,Dog类就是子类,Animal类就是父类,其中子类也就是Dog类继承了父类也就是Animal类的非私有属性和方法,同时子类可以增加子类特有的属性和方法,并且子类可以重写父类的方法。使用继承首先可以减少大量的重复性代码,把公共的代码提取出来放到父类中同时也方便管理。

接下来我们用代码来进一步解释,首先定义一个父类Animal类:

public classAnimal {privateInteger age;publicAnimal(){

System.out.println("Animal construct method");

}publicInteger getAge() {returnage;

}public voidsetAge(Integer age) {this.age =age;

}public voideat(){

System.out.println("eat food");

}

}

然后我们在定义一个dog类:

public class Dog extendsAnimal{private String color; //毛色

publicDog(String color){this.color =color;

}public voidrun(){

System.out.println("Dog is running");

}

@Overridepublic voideat(){

System.out.println("dog eat bone");

}

}

在Dog类中我们添加了子类自己的方法和属性并重写了父类的一个方法。在程序中的调用:

public static voidmain(String[] args) {

Dog dog= new Dog("红色");

dog.eat();

}

控制台打印:

Animal construct method

dog eat bone

这里需要说的我们在new Dog类的时候父类的构造方法也会执行并且会先于子类执行。定义一个cat类:

public class Cat extendsAnimal{

@Overridepublic voideat(){super.eat();

System.out.println("cat eat finsh");

}

}

调用Cat的eat方法发现不只打印了“cat eat finsh”还打印了父类的“eat  food”。当父类方法和子类方法重名时,可以通过super关键字强制访问父类的变量和方法并且在new子类对象的过程中,也可以通过super关键字调用父类的构造方法,没有使用super的时候默认调用父类的默认的构造方法,父类的构造方法要先于子类执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值