JAVA语言面向对象之继承的特点、注意事项和案例分析
小标 2019-01-09 来源 : 阅读 1017 评论 0

摘要:本文主要向大家介绍了JAVA语言面向对象之继承的特点、注意事项和案例分析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言面向对象之继承的特点、注意事项和案例分析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


继承(inheritance)


Java支持单继承:一个类只能有一个直接父类


关键字:extends


class Student extends Person{...}

   


注:如果没有extends子句,则该类默认为java.lang.Object的子类,所有的类都是通过直接或间接的继承java.lang.Object。


继承则相当于is--a的关系


继承的好处


1)提供了代码的复用性,解决了代码的臃肿;


2)它是多态的前提。


Java中继承的特点


子类继承了父类所有的东西,但是子类不能使用父类私有的东西,只能通过访问父类共有的方法间接的让子类访问它。


Java中继承的注意事项以及我们什么时候使用继承


A:子类只能继承父类非私有成员(成员方法和成员变量)


B: 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法


C: 不要为了部分功能去继承


案例分析:


package Test;

 

/*

猫狗案例

 

先找到具体的事物,然后发现具体的事物有共性,才提取出一个父类。

 

猫:

    成员变量:姓名,年龄,颜色

    构造方法:无参,带参

    成员方法:

        getXxx()/setXxx()

        eat()

        palyGame()

狗:

    成员变量:姓名,年龄,颜色

    构造方法:无参,带参

    成员方法:

        getXxx()/setXxx()

        eat()

        lookDoor()

         

共性:

    成员变量:姓名,年龄,颜色

    构造方法:无参,带参

    成员方法:

        getXxx()/setXxx()

        eat()

         

把共性定义到一个类中,这个类的名字叫:动物。

动物类:

    成员变量:姓名,年龄,颜色

    构造方法:无参,带参

    成员方法:

        getXxx()/setXxx()

        eat()

         

    猫:  

        构造方法:无参,带参

        成员方法:palyGame()

    狗:

        构造方法:无参,带参

        成员方法:lookDoor()

*/

//定义动物类

class Animal {

//姓名

private String name;

//年龄

private int age;

//颜色

private String color;

 

public Animal() {}

 

public Animal(String name,int age,String color) {

    this.name = name;

    this.age = age;

    this.color = color;

}

 

 

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;

}

 

public String getColor() {

    return color;

}

 

public void setColor(String color) {

    this.color = color;

}

 

public void eat() {

    System.out.println("不要睡了,该吃饭了");

}

}

 

//定义猫类

class Cat extends Animal {

public Cat() {}

 

public Cat(String name,int age,String color) {

    super(name,age,color);

}

 

public void playGame() {

    System.out.println("猫玩英雄联盟");

}

}

 

//定义狗类

class Dog extends Animal {

public Dog() {}

 

public Dog(String name,int age,String color) {

    super(name,age,color);

}

 

public void lookDoor() {

    System.out.println("狗看家");

}

}

 

//测试类

class Test{

public static void main(String[] args) {

    //测试猫

    //方式1

    Cat c1 = new Cat();

    c1.setName("Tom");

    c1.setAge(3);

    c1.setColor("白色");

    System.out.println("猫的名字是:"+c1.getName()+";年龄是:"+c1.getAge()+";颜色是:"+c1.getColor());

    c1.eat();

    c1.playGame();

    System.out.println("---------------");

     

    //方式2

    Cat c2 = new Cat("杰瑞",5,"土豪金");

    System.out.println("猫的名字是:"+c2.getName()+";年龄是:"+c2.getAge()+";颜色是:"+c2.getColor());

    c2.eat();

    c2.playGame();

     

    //测试狗

    //方式1

    Dog d1 = new Dog();

    d1.setName("Jem");

    d1.setAge(6);

    d1.setColor("红色");

    System.out.println("狗的名字是:"+d1.getName()+";年龄是:"+d1.getAge()+";颜色是:"+d1.getColor());

    d1.eat();

    d1.lookDoor();

    System.out.println("---------------");

     

    //方式2

    Dog d2 = new Dog("汪汪",8,"深灰");

    System.out.println("狗的名字是:"+d2.getName()+";年龄是:"+d2.getAge()+";颜色是:"+d2.getColor());

    d2.eat();

    d2.lookDoor();

}

}

   


运行结果如下:


猫的名字是:Tom;年龄是:3;颜色是:白色

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程