有哪些java继承特性

发布时间:2021-11-02 13:36:24 作者:iii
来源:亿速云 阅读:145

这篇文章主要讲解了“有哪些java继承特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些java继承特性”吧!

什么是继承

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

有哪些java继承特性

继承的语法

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. 当子类和父类的成员变量重名的时候,子类优先,即就近原则。

感谢各位的阅读,以上就是“有哪些java继承特性”的内容了,经过本文的学习后,相信大家对有哪些java继承特性这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Java有什么特性
  2. 程序有哪些特性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:怎么排查Spring Boot内存泄露

下一篇:怎么使用Python内置函数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》