Java 基础 19 继承

2018-01-29  本文已影响41人  小熊先生很不开心

1.1继承的概述

1.1.1继承概述

1.1.2实现继承的方式

  通过extends关键字可以实现类与类的继承

格式:

1.1.3案例代码

package com.itheima_02;
/*
 * 标准人类
 * 
 * 继承的格式:
 *      public class 子类名 extends 父类名 {}
 * 
 * 继承的好处:
 *      A:提高了代码的复用性
 *      B:提高了代码的维护性
 *      C:让类与类之间产生了关系,是多态的前提
 * 
 * 继承的弊端:
 *      让类与类之间产生了关系,也就让类的耦合性增强了。
 * 
 *      开发原则:高内聚,低耦合。
 *          内聚:就是自己完成某件事情的能力
 *          耦合:类与类的关系
 */
public class Person {
    private String name;
    private int age;
    
    public Person() {}

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
}
package com.itheima_02;

public class Student extends Person {
    public void study() {
        System.out.println("学生要好好学习");
    }
}
package com.itheima_02;

public class Teacher extends Person {
    public void teach() {
        System.out.println("老师要好好讲课");
    }
}

1.2继承的好处和弊端

1.2.1继承的好处

1.2.2继承的弊端

1.2.3 示例代码

package com.itheima_02;
/*
 * 标准人类
 * 
 * 继承的格式:
 *      public class 子类名 extends 父类名 {}
 * 
 * 继承的好处:
 *      A:提高了代码的复用性
 *      B:提高了代码的维护性
 *      C:让类与类之间产生了关系,是多态的前提
 * 
 * 继承的弊端:
 *      让类与类之间产生了关系,也就让类的耦合性增强了。
 * 
 *      开发原则:高内聚,低耦合。
 *          内聚:就是自己完成某件事情的能力
 *          耦合:类与类的关系
 */
public class Person {
    private String name;
    private int age;
    
    public Person() {}

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
}

1.3 Java 中继承的特点

1.3.1 Java 中单继承以及多级继承

1.3.2示例代码

package com.itheima_03;

public class Father extends GrandFather {
    public void fatherSay() {
        System.out.println("爸爸都是从儿子走过来的");
    }
}

package com.itheima_03;

public class GrandFather {
    public void grandFatherSay() {
        System.out.println("爷爷都是从孙子熬过来的");
    }
}

package com.itheima_03;

/*
public class Son extends GrandFather {
    public static void main(String[] args) {
        Son s = new Son();
        s.grandFatherSay();
    }
}
*/

/*
public class Son extends Father {
    public static void main(String[] args) {
        Son s = new Son();
        s.fatherSay();
    }
}
*/

//Java中类只支持单继承,不支持多继承
/*
public class Son extends Father,GrandFather {
    public static void main(String[] args) {
        Son s = new Son();
        s.fatherSay();
    }
}
*/

//Java中类支持多层继承
public class Son extends Father {
    public static void main(String[] args) {
        Son s = new Son();
        s.fatherSay();
        s.grandFatherSay();
    }
}

1.4 Java继承中成员变量的特点

1.4.1Java 继承中成员变量的特点

1.4.2示例代码

package com.itheima_01;

public class Father {
    //为了演示案例的方便,这里我们使用public修饰了成员变量,实际开发中,用的是private
    //年龄
    public int age = 45;
}

package com.itheima_01;
/*
 * Java继承中成员变量的特点:
 *      A:成员变量名称不一样,使用的时候非常简单。
 *      B:成员变量名称一样的情况
 *          在子类方法中访问变量:
 *              a:在方法的局部范围找,如果有就使用
 *              b:在子类的成员范围找,如果有就使用
 *              c:在父类的成员范围找,如果有就使用
 *              d:如果还找不到,就报错
 *          就近原则。
 */
public class Son extends Father {
    //身高
    public int height = 170;
    //年龄
    public int age = 20;
    
    public void show() {
        System.out.println(height);
        System.out.println(age);
    }
    
    public void printAge() {
        int age = 10;
        System.out.println(age);
    }
}



package com.itheima_01;

public class ExtendsTest {
    public static void main(String[] args) {
        Son s = new Son();
        //s.show();
        s.printAge();
    }
}

上一篇 下一篇

猜你喜欢

热点阅读