面向对象之继承

面向对象之继承

1.1继承的概述

  • 继承是面向对象的核心特性,是面向对象的学习重点。
  • 继承是代码复用的重要方式,是类与类之间的一种关系。
  • 从类与类之间的设计来看,子类必须是属于父类的一种时才会继承。
  • 父类抽出了共性的内容,子类可以在父类的基础上拓展新的属性和行为。
  • 子类拥有父类的所有属性和方法,无需重新定义,并且子类可以直接使用父类中的非私有成员。

1.2继承的格式

  • 使用extends关键字实现
  • 格式:
    class 子类 extends 父类{
    }

1.3继承的优点

  • 提高代码的重用性,减少代码冗余
  • 有利于后期对象的增强、扩展

1.4继承的案例

  • 创建父类和子类
package csdn;

//创建一个父类Animal
public class Animal {
	private int age;
	private int numOfLegs;//创建动物的共有属性年龄和腿的条数

	public Animal() {

	}

	public Animal(int age, int numOfLegs) {
		this.age = age;
		this.numOfLegs = numOfLegs;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getNumOfLegs() {
		return numOfLegs;
	}
	
	public void eat() {
		System.out.println("年龄为"+getAge()+"岁的有"+getNumOfLegs()+"条腿的动物在吃饭饭");//创建动物的共有方法吃饭饭
	}
}


//创建子类Cat
class Cat extends Animal {
	public Cat() {
	}

	public Cat(int age, int numOfLegs) {
		super(age, numOfLegs);//Cat直接继承了Animal的属性
	}
	
}
  • 创建一个测试类来验证
package csdn;

//创建测试类
public class TsetAnimal {
	public static void main(String[] args) {
		Cat cat = new Cat(2, 4);// Cat年龄和腿的条数赋值成功
		cat.eat();//创建的子类对象cat可以直接调用父类的方法
	}
}

在这里插入图片描述
2.1方法重写

  • 方法重写的概念:当子类继承父类后,拥有了父类的成员并可以直接调用父类的非私有方法,如果子类认为父类提供的方法不够强大,子类可以按照自身逻辑重新定义继承过来的方法,这个定义方法的过程叫做重写。
    *方法重写的格式:
    定义一个方法声明和父类完全相同的方法,方法体重写。

2.2方法重写案例

	class Rabbit extends Herbivore{
	 public Rabbit() {
			 
		 }
		 public Rabbit(int age,int numOfLegs) {
			 super(age,numOfLegs);
		 }
		public void eat() {
			System.out.println("年龄为"+getAge()+"岁的有"+getNumOfLegs()+"条腿的兔子在吃狗尾巴草");
		}
	}
  • 再次调用测试类
package csdn;

//创建测试类
public class TsetAnimal {
	public static void main(String[] args) {
		Cat cat = new Cat(2, 4);// Cat年龄和腿的条数赋值成功
		cat.eat();//创建的子类对象调用eat方法
	}
}

在这里插入图片描述
2.3方法重写的注意事项

  • 方法名称必须相同
  • 参数列表必须相同
  • 访问权限相同或者子类的访问权限更大
  • 子类方法的返回值(基本数据类型)必须和父类相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值