码迷,mamicode.com
首页 > 编程语言 > 详细

java 继承

时间:2020-01-18 16:24:11      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:小米   xxxx   ack   void   package   很多   string   基础上   vat   

继承

    子类继承父类除私有内容外的其他内容

继承: 子类可以自动拥有父类中除了私有内容外的其他所有内容.

语法:

public class 子类 extends 父类{

}

那什么样的逻辑我们可以写成继承关系呢? 当出现xxx是一种xxxx的时候. 就可以用继承关系.

比如, 写一个手机类

package com.lewen.day18;

public class Phone {
    public void call(){
        System.out.println("打电话");
    }
}

写个小米手机

package com.lewen.day18;

public class Xiaomi extends Phone {
}

测试一下

package com.lewen.day18;

public class TestExtends {
    public static void main(String[] args) {
        Xiaomi xm = new Xiaomi();
        xm.call();
    }
}

我们发现程序没有报错, 并且, 可以正常执行. 但是我们看Xiaomi这个类里并没有写任何代码. 就写了个继承.

对了, 继承就是这样的. Xiaomi继承了Phone的所有. 接下来. 我们试试看加了private的方法会不会被继承

package com.lewen.day18;

public class Phone {
    public void call(){
        System.out.println("打电话");
    }

    private void Msn(){
        System.out.println("出厂编码");
    }

}

测试

package com.lewen.day18;

public class TestExtends {
    public static void main(String[] args) {
        Xiaomi xm = new Xiaomi();
        xm.call();
//        xm.msn();
    }
}

不光是方法, 属性也一样

package com.lewen.day18;

public class Phone {
    private String mha;

    public void call() {
        System.out.println("打电话");
    }

    private void msn() {
        System.out.println("出厂编码");
    }

}

测试

package com.lewen.day18;

public class TestExtends {
    public static void main(String[] args) {
        Xiaomi xm = new Xiaomi();
        xm.call();
//        xm.msn(); //报错,找不到

//        xm.mha = "4000";             // 报错
//        System.out.println(xm.mha);

    }
}

没问题.

OK. 回到继承的概念. 在java里. 子类继承父类. 子类会自动拥有父类中除了私有内容外的其他所有内容

注意: 不是说子类继承了父类就不能写其他的了. 子类还可以写自己的方法和属性. 互不干扰.

package com.lewen.day18;

public class Xiaomi extends Phone {
    public void ai() {
        System.out.println("小爱同学");
    }
}

测试:

package com.lewen.day18;

public class TestExtends {
    public static void main(String[] args) {
        Xiaomi xm = new Xiaomi();
        xm.call();  // 父类中方法
        xm.ai();    // 子类中方法
    }
}

所以从另一个角度讲, 子类其实是对父类进行了扩展. 在父类已经给了一些方法和属性的基础上再加一点儿新功能. 可以节省很多的代码.

注意: java只能单继承. 说白了. 每个儿子只能有一个爹

java 继承

标签:小米   xxxx   ack   void   package   很多   string   基础上   vat   

原文地址:https://www.cnblogs.com/wenyule/p/12209178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!