文章目录
前言
为了深入了解JAVA的面向对象的特性,今天我们来学习剖析多态。多态在Java中的应用非常广泛,可以大大优化代码,让代码清晰整洁,它需要在继承的前提下让子类将父类中的方法进行重写,最后通过父类对象访问到子类重写的方法实现多态!
提到了很多新内容,本篇文章将会详细介绍Java语言中的继承,访问限定符,关键字等相关内容,让我们速速开始吧!!
一、继承
前言我们提到多态需要在继承的前提下使用,那么就需要先知道继承是什么。在生活中有许多事物,一类人,一类物品等,这些都有着或多或少的联系,事物之间会产生一些关联,那在设计程序时就需要考虑。
举个栗子🌰:动物一类中的猫和狗。
//定义一个猫类
class Cat{
String name;
int age;
String color;
public Cat(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
public void mew(){
System.out.println(this.name + "正在喵喵喵~");
}
}
//定义一个狗类
class Dog{
String name;
int age;
String color;
public Dog(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
public void barks(){
System.out.println(this.name + "正在汪汪汪~");
}
}
//输出运用
public class test {
public static void main(String[] args) {
Dog dog = new Dog("大黄",3,"金黄");
dog.barks();
Cat cat = new Cat("小黑",1,"黑色");
cat.mew();
}
}
//最后输出结果分别是:
//“大黄正在汪汪叫~”和“小黑正在喵喵叫~”
通过观察代码可以发现,猫类和狗类都有重复的部分:
圈画的部分都是一模一样的,那能否将这些共性提取出来呢?
“面向对象思想便提出了继承的概念,专门用来进行共性抽取,实现代码的复用。”
1.1 继承的概念
继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。
继承主要解决的问题是:共性的抽取,实现代码复用。
被继承的称为:父类,基类或者超类
继承的称为:子类或者派生类
上图中Dog类和Cat类就是Animal的子类,继承了Animal中的元素,实现复用,子类在实现时只需要管各自的成员即可。
1.1.1继承的语法
在java中如果想表示继承的关系,需要借助extends关键字,具体如下:
修饰符 class 子类 extends 父类{
...;
}
对刚刚的猫狗场景使用继承方式重新设计,代码如下:
//定义动物类(父类)
class Animal{
String name;
int age;
String color;
}
//定义狗类(子类)
class Dog extends Animal{
public void barks()