• 2020/7/4 java 继承 抽象类


    在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法

    格式:
    class 子类 extends 父类 {}
    /*
     * 定义员工类Employee
     */
    class Employee {
        String name; // 定义name属性
        // 定义员工的工作方法
        public void work() {
            System.out.println("尽心尽力地工作");
        }
    }
    
    /*
     * 定义研发部员工类Developer 继承 员工类Employee
     */
    class Developer extends Employee {
        // 定义一个打印name的方法
        public void printName() {
            System.out.println("name=" + name);
        }
    }
    
    /*
     * 定义测试类
     */
    public class Example01 {
        public static void main(String[] args) {
            Developer d = new Developer(); // 创建一个研发部员工类对象
            d.name = "小明"; // 为该员工类的name属性进行赋值
            d.printName(); // 调用该员工的printName()方法
            d.work(); // 调用Developer类继承来的work()方法
        }
    }

    继承好处

    提高了代码的复用性 提高软件开发效率   让类与类之间产生了关系 提供多态的前提

    注意事项

    在java中类只 支持单继承不允许多继承  也就是说一个类 只能又一个直接父类

    多个类可以继承一个父类

    在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。

    在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。

    子父类成员变量的特点

    Fu类中的成员变量是非私有的,子类中可以直接访问,若Fu类中的成员变量私有了,子类是不能直接访问的

    在子类中,访问父类中的成员变量格式:
    super.父类中的成员变量

    子父类成员方法特点  重写&应用

    在子类中,访问父类中的成员变量格式:

    super.父类中的成员变量

    class Fu
    {
        public void show()
        {
            System.out.println("Fu show");
        }
    }
    class Zi extends Fu
    {
        //子类复写了父类的show方法
        public void show()
        {
            System.out.println("Zi show");
        }
    }
    在子类中,访问父类中的成员方法格式:
    super.父类中的成员方法();

    l  子类方法覆盖父类方法,必须要保证权限大于等于父类权限。  方法的返回值类型 方法名 参数列表都要一样。

    当一个类是另一个类中的一种时,可以通过继承,来继承属性与功能。如果父类具备的功能内容需要子类特殊定义时,进行方法重写

     

    抽象类

    方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

    当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

    抽象方法定义方法

    public abstract 返回值类型 方法名(参数);

    抽象类定义的格式:

    abstract class 类名 {
    }

    抽象类特点

    1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

    2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

    3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

  • 相关阅读:
    ----Vue 单页应用的首屏优化----
    ----小程序之rich-text图片宽度自适应----
    ----vue-router 如何在新窗口打开页面----
    ----element-ui实现时间控件开始时间和结束时间关联----
    ----element-ui自定义表单验证----
    ----js中的every和some----
    「Linux学习」之挂载访问samba服务
    「Linux学习」之samba和nfs共享服务搭建
    「Linux学习」之防火墙服务设置
    「linux学习」之批量创建用户脚本
  • 原文地址:https://www.cnblogs.com/cst123/p/13235676.html
Copyright © 2020-2023  润新知