ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[JavaⅠ]4.1继承与多态——继承、super、抽象类

2021-07-21 22:03:17  阅读:139  来源: 互联网

标签:4.1 show 继承 子类 多态 class 父类 方法 public


继承与抽象类

  • 定义

    ​ 就是子类继承父类的属性行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

  • 好处

    1. 提高代码的复用性
    2. 类与类之间产生了关系,是多态的前提

1 继承的格式

  • extends 关键字,可以声明一个子类继承另外一个父类

    class 父类 {
        ...
    }
    
    class 子类 extends 父类 {
        ... 
    }
    

2 重名的成员变量

​ 成员变量不重名无影响,子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰 父类成员变量,类似于之前学过的 this 。

使用格式:

super.父类成员变量名

代码

class Fu {
    // Fu中的成员变量。 
    int num = 6; 
}
class Zi extends Fu {
    // Zi中的成员变量 
    int num = 9; 
    public void show(){
        //访问子类的sum
        System.out.println(sum);
        //访问子类的sum
        System.out.println(this.sum);
        //访问父类的sum
        System.out.println(super.sum);
    } 
}
class ExtendsDemo03 {
    public static void main(String[] args) {
        // 创建子类对象 
        Zi z = new Zi();
        // 调用子类中的show方法
        z.show(); 
    } 
}
//运行结果为 996

3 重名的成员方法(重写)

​ 成员方法不重名无影响,如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。

  • 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效

果,也称为重写或者复写。声明不变,重新实现

  • 子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从

而进行扩展增强。

public class Fu {
    //Fu类的成员方法
    public void show(){
        System.out.println("fu");
    }
}
public class Zi extends Fu{
    //Zi类的成员方法
    public void show(){
        //沿袭父类方法
        super.show();
        //重新实现
        System.out.println("zi");
    }
}
public class Demo02 {
    public static void main(String[] args) {
        // 创建子类对象
        Zi zi = new Zi();
        // 调用子类中的show方法
        zi.show();
    }
}

4 Java继承的特点

  1. Java只支持单继承,不支持多继承
  2. Java支持多层继承(继承体系)
  3. 子类和父类是一种相对的概念。

5 抽象类

​ 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。

​ 我们把没有方法主体的方法称为抽象方法,包含抽象方法 的类就是抽象类

  • 抽象方法

    ​ 使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。

    定义格式:

    修饰符 abstract 返回值类型 方法名 (参数列表);
    
  • 抽象类

    ​ 如果一个类包含抽象方法,那么该类必须是抽象类

    定义格式:

    abstract class 类名字 {
    }
    

    ​ 继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父 类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。

    代码

    public abstract class Fu {
        public abstract void show();
    }
    public class Zi extends Fu{
    
        @Override
        public void show() {
            System.out.println("zi");
        }
    }
    public class Demo03 {
        public static void main(String[] args) {
            Zi zi = new Zi();
            zi.show();
        }
    }
    

    参考资料:

    ​ 《Java教程零基础入门到精通IDEA版》黑马程序员

标签:4.1,show,继承,子类,多态,class,父类,方法,public
来源: https://www.cnblogs.com/masahiko/p/15041775.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有