java学习之路10继承

说到继承,生活中的继承,比如儿子继承父亲的所有财产,或者继承了良好的本身条件,相对而言继承之后,会变得更强更好,

那java中的继承类似于这种

继承:

继承而得到的类称为子类,被继承的类称为父类。子类将拥有所有可以继承的属性与方法,还可以拥有自由的特点属性,子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多继承,即一个类从多个超类派生的能力。Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。

java中如何实现继承

通过关键字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()方法
    }
}


上面的研发部员工和员工类就是继承关系

继承之后代码的运行方向

当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

方向的重写:

继承父类之后。想在原来的父类基础之上强化子类的功能,那就选择重写父类的方法,

重写就是重新定义父类的方法,但是方法名  返回值类型  方法参数都要与父类的相同,

注意几点:

1.继承只能实现单继承,但可以多重继承

2.子父类中出现了同名的非私有的成员变量,子类要访问父类成员成员变量,就是用关键字super

class Fu
{
    //Fu中的成员变量。
    int num = 5;
}
class Zi extends Fu
{
    //Zi中的成员变量
    int num = 6;
    void show()
    {
        //子父类中出现了同名的成员变量时
        //在子类中需要访问父类中非私有成员变量时,需要使用super关键字
        //访问父类中的num
        System.out.println("Fu num="+super.num);
        //访问子类中的num2
        System.out.println("Zi num2="+this.num);
    }
}
class Demo5
{
    public static void main(String[] args)
    {
        Zi z = new Zi(); //创建子类对象
        z.show(); //调用子类中的show方法
    }
}


4.父类的构造方法以及被private修饰的成员变量都不能被子类继承!

猜你喜欢

转载自blog.csdn.net/qq_34491508/article/details/81448117