Java 入门————类的继承

@[TOC] 类的继承

什么是类的继承?

借用书上的话来讲:
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

为什么要使用继承呢?

试想一下:在之前我创建了一只小狗的类,现在我又想创建一个小猫的对象。
现在来分析一下小猫里面都有什么属性和行为:名字,品种,毛发颜色,吃喝拉撒,再加个吃小鱼干吧。
下面来看看小猫的代码:

class cat{
    String name;//名字
    int age;//年龄
    String variety;//品种
    

//小猫吃
    public void eat(){
        //eating......
}
//小猫喝水
	public void drinking(){
	//drinking......
	}
 //.......
}

欸,仔细一看好像有些代码是和小狗一样啊。
所以这里继承就有用了。如果有一个父类里面包含了小猫,小狗都有的属性和行为的代码,那么通过继承,我们就只需要在小猫和小狗里面添加新的代码就好了。就不用额外敲代码了。想想感觉还是蛮方便的啊。

那么下面就来介绍一下继承的格式具体怎么写吧:

class animal{
 String name;//名字
    int age;//年龄
    String variety;//品种
    //something else in it
}
class cat extends animals{
super.name;
super.age;
super.variety;
//小猫吃
    public void eat(){
        //eating......
}
//小猫喝水
	public void drinking(){
	//drinking......
	}
 //.......

}

public class 类名(子类、派生类) extends 类名(父类、基类) {

}
注意:Java中类的继承是单继承
以上就是继承的语句了。或许会有疑问,里面的super是什么啊?
super关键字是指代父类的对象,通过super我们可以访问父类中的可以访问的属性值和函数

继承到的内容

就和现实生活中一样,老人去世的时候中有一部分东西是继承不到的。。。

有以下两点很重要:

  • 子类能继承到父类所有的属性和所有的普通方法。
  • 继承和访问修饰符是没有任何关系的。

下面是子类可以访问的范围:

访问权限子类
public可以
protected可以
defult不可以
private不可以

方法重写

第一眼看上去好像和方法重载蛮像的,但是方法重写和方法重载有很大的区别。
方法重写的条件:

  • 必须存在继承关系
  • 子类方法的访问修饰符要大于或等于父类方法的访问修饰符
  • 子类方法的返回值类型,方法名,参数都必须和父类完全一致!!!!
  • 方法的具体实现要不同

重写后的方法如何调用?
这个是根据类名来调用的,如果类名是子类的,就优先调用子类的方法,子类中没有这个方法就会调用父类中的方法。

** 如何也执行父类的方法?**
super!super!super! 重要的事情说三遍。

自动转型

什么是自动转型?
很简单,cat c =new cat();声明了一个cat类的对象,他的类别是cat ,使用自动转型就可以把c 从cat类转换为animal类

cat c = new cat();
c = (animal) c;
//这样就是自动转型

条件

  • 必须存在继承关系

格式

animal c = new cat();
//父类名 对象名 = new 子类构造方法(参数);

注意:使用自动转型之后会无法调用子类里面独有的属性和普通方法!!!

为何要使用自动转型呢?
假如我定义了一个方法

public void eat(Object o){
//eating......
}

这里我想要传入的参数既可以是父类也可以是子类,那么就要用到自动转型了。

ok Java的一个主要特性面向对象的继承性就到这里,下面将会讲到抽象类和接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值