java继承的特征_java继承特性详解

什么是继承

继承是java对象面向对象的三大特性之一,即子类继承父类的特征和行为,从而使子类对象具备父类的相同的行为。比如说:现实生活中的动物,兔子和羊属于食草动物类,狮子和豹属于食肉动物类,但食草动物和食肉动物又是属于动物类,如下图:

7099beac1e15d84ae251712ccccb94fc.png

继承的语法class 父类 {

}

class 子类 extends 父类 {

}

继承的特点

1. 继承关键字extends ,实现了继承之后,类与类之间产生了关系;

2. 继承的本质就是抽取共性代码,多个重复代码的向上抽取,简化代码;

3. 类是对一批对象的抽象,继承是对一批类的抽象;

4. 父类又被称为超类,或者基类,子类又被称为派生类;

5. Java是面向对象语言,万事万物皆是对象,为了满足这个设计原则,所有的类都直接或者间接继承自Object类。

继承的优缺点

优点:

1.简化了代码;

2.提高了扩展性和可维护性;

缺点:

耦合度搞,牵一发而动全身

继承案例

介绍

开发动物类,其中动物分别为企鹅以及老鼠,要求如下:

企鹅:属性(姓名,id),方法(吃,睡,自我介绍)

老鼠:属性(姓名,id),方法(吃,睡,自我介绍)

通常情况下我们会这么写:

首先定义一个企鹅类,然后是属性,方法,然后是老鼠类,属性方法,如下:/**

*企鹅类

**/

public class Penguin {

private String name;

private int id;

public Penguin(String myName, int myid) {

name = myName;

id = myid;

}

public void eat(){

System.out.println(name+"正在吃");

}

public void sleep(){

System.out.println(name+"正在睡");

}

public void introduction() {

System.out.println("大家好!我是" + id + "号" + name + ".");

}

}/**

*老鼠类

**/

public class Mouse {

private String name;

private int id;

public Mouse(String myName, int myid) {

name = myName;

id = myid;

}

public void eat(){

System.out.println(name+"正在吃");

}

public void sleep(){

System.out.println(name+"正在睡");

}

public void introduction() {

System.out.println("大家好!我是" + id + "号" + name + ".");

}

}

通过编码发现代码存在重复了,导致后果就是代码量大且臃肿,而且维护性不高。那我们是不是可以用继承的方案解决呢?请看下面代码:/**

*抽出公共部分定义父类

**/

public class Animal {

private String name;

private int id;

public Animal(String myName, int myid) {

name = myName;

id = myid;

}

public void eat(){

System.out.println(name+"正在吃");

}

public void sleep(){

System.out.println(name+"正在睡");

}

public void introduction() {

System.out.println("大家好!我是" + id + "号" + name + ".");

}

}/**

*企鹅类继承父类

**/

public class Penguin extends Animal {

public Penguin(String myName, int myid) {

super(myName, myid);

}

}/**

*老鼠类继承父类

**/

public class Mouse extends Animal {

public Mouse(String myName, int myid) {

super(myName, myid);

}

}

通过继承,是不是简化了代码,提高了代码的扩展性和可维护性。

注意事项

了解继承,知道l如何实现,但还需注意以下几点:

1.

父类属性方法使用private修饰,那么子类不能被继承  ;

2.  只支持单一继承,通俗点讲就是一个子类只能有一个父类,但父类可以有多个子类;

3.支持多层继承;

4. 当子类和父类的成员变量重名的时候,子类优先,即就近原则。

总结

通过对以上的知识点的学习,相信大家对继承的概念和使用有了基本认识,不过还是得多加练习才行哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值