继承关系
继承是一种利用已有的类,快速的创建新的类的机制!
在声明类时,使用extends关键字可以实现类与类的继承,例如:
public class Cat extends Animal` { ...
当实现了继承关系后,被继承的类通常称之为“父类SuperClass/超类/基类”,而得到继承的类通常称之为“子类SubClass/派生类”。
当实现了继承关系后,子类将拥有父类中所有的属性和方法!(正确的,有争议的!)
Java是一门单继承的语言,即每个子类只允许存在1个直接的父类!
假设存在A类,它作为子类继承了B类,而B类作为子类继承了C类……则会形成一条“继承链”,在一条继承链上,更下级的子类将继承得到这条链上所有直接和间接父类的所有属性和方法!
在这个概念上,“继承”只是一种中文的表达,用于辅助理解相关的概念,事实上,extend在英文中表示的是“扩展”!
在程序过程中,创建对象时,也会表现出“扩展”的特性,假设存在Cat extends Animal的关系,当new Cat()时,程序会先在内存中创建一个Animal的对象,然后在此基础上,创建Cat的对象!也就是“子类包含父类”!
创建父类
package nnnn; // 包
public class Animal { //创建类
void sleep() { //行为,方法
System.out.println("在睡觉"); // 输出语句
}
void eat() {
System.out.println("吃食");
}
}
创建子类
package nnnn;
public class Cat extends Animal { //继承父类(Animal)
String color; // 颜色属性
String name; //姓名属性
int age; //年龄属性
}
package nnnn;
public class Dog extends Animal{
String color;
String name;
int age;
}
创建测试类
package nnnn;
public class Sample {
public static void main(String[] args) {
Cat c = new Cat(); //
c.name= "小白";
c.color = "白色";
c.age = 3;
System.out.print(c.name+"的颜色为:"+c.color+",年龄"+c.age+"岁");
c.sleep();
Dog d = new Dog();
d.name="小金";
d.color = "金色";
d.age = 1;
System.out.print(d.name+"的颜色为:"+d.color+",年龄"+d.age+"岁");
d.eat();
}
}
网友评论