面向对象——继承

定义

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

格式

class 子类 extends 父类 {

}

举例

 class Employee {
    //定义name属性
     String name;
    //定义员工的工作方法
    public void work(){
        System.out.println("全力以赴去工作!");
    }
}
class Develoer extends Employee{
     /**
        定义一个打印name 的方法
      */
    public void prinName(){
        System.out.println("name:"+name);
    }
    /**
     * 定义一个测试类
     */
    public static class Example01{
        public static void main(String[] arge){
            Develoer d = new Develoer();
            d.name = "小米";  //为该员工的那么属性进行赋值
            d.prinName();   //调用该员工的printName()方法
            d.work();   //调用Developer类继承work方法
        }
    }
}
/*
    输出结果:
    name:小米
    全力以赴去工作!
 */

继承的优缺点及注意事项

好处

1、继承的出现提高了代码的复用性,提高软件开发效率
2、继承的出现让类与类之间产生了关系,提供了多态的前提。
3、让类与类之间参生关系。

弊端

类与类之间耦合度太高

注意以下问题

类只支持单继承,不允许多继承

class A{} 
class B{}
class C extends A,B{}  // C类不可以同时继承A类和B类

多个类可以继承一个父类

 class A{}
 class B extends A{}
 class C extends A{}   // 类B和类C都可以继承类A

一个类的父类可以再去继承另外的父类

 class A{}
 class B extends A{}   // 类B继承类A,类B是类A的子类
 class C extends B{}   // 类C继承类B,类C是类B的子类,同时也是类A的子类

一个类是某个类父类的同时,也可以是另一个类的子类

继承-子父类中成员变量的特点

package Demo;
class Fu {
    /**
     * Fu中的成员变量。
     */
    int num = 5;
}
class Zi extends Fu {
    /**
     * Zi中的成员变量
     */
    int num2 = 6;
    /**
     * Zi中的成员方法
     */
    public void show() {
        //访问父类中的num
        System.out.println("Fu num=" + num);
        //访问子类中的num2
        System.out.println("Zi num2=" + num2);
    }
}
class Demo {
    public static void main(String[] args) {
        //创建子类对象
        Zi z = new Zi();
        z.show(); //调用子类中的show方法
    }
}

输出结果:
Fu num=5
Zi num2=6

代码说明

Fu类中的成员变量时非私有的,子类可以之间访问,反之则不然。
当子父类中出现了同盟成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字,super来完成。super用来表示当前对象中包含的父类对象空间的引用。

posted @ 2020-05-21 11:46  诸葛孔萌  阅读(98)  评论(0编辑  收藏  举报