摘要:本文主要向大家介绍了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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号