参考链接: Java多重继承
Java之继承
继承是面向对象程序的一个基本特征,通过继承可以实现父子关系,以及代码的复用。通过继承实现的类称为子类,被继承的类称为父类,所有直接或间接被继承的类都称为父类。
Java类体系中的根类是java.lang.Object,所有类都是Object的直接子类或间接子类。如果定义类时没有extends子句,则该类的父类默认为Object。Java中不支持类似C++中的多重继承特性,Java只支持单继承,每个Java类最多只能有一个父类。在类的声明中,通过extends关键字声明一个继承关系。
示例1
动物类之狗,猫,鸟,鱼分别继承实现名字,年龄,动作的输出
代码块
package com.Hwadee;
/**
*继承
*/
public class Test {
public static void main(String[] args) {
Dog d=new Dog("狗",2); //创建对象
d.eat();
Cat c=new Cat("猫",1);
c.eat();
Bird b=new Bird("鸟",3);
b.eat();
Fish f=new Fish("鱼",6);
f.eat();
}
}
class Animal{
String name;
int age;
public Animal() { //默认构造函数
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat(){
System.out.println("吃东西");
}
}
class Dog extends Animal{ //Dog类继承Animal父类
public Dog(){
}
public Dog(String name,int age){
this.name=name;
this.age=age;
System.out.println("名字:"+name+"\t"+"年龄:"+age);
}
@Override //方法重写
public void eat(){
System.out.println("吃骨头");
}
}
class Cat extends Animal{
public Cat() {
super();
}
public Cat(String name, int age) {
super(name, age);
System.out.println("名字:"+name+"\t"+"年龄:"+age);
}
@Override
public void eat(){
System.out.println("吃鱼");
}
}
class Bird extends Animal{
public Bird() {
super();
}
public Bird(String name, int age) {
super(name, age);
System.out.println("名字:"+name+"\t"+"年龄:"+age);
}
@Override
public void eat(){
System.out.println("吃虫子");
}
}
class Fish extends Animal{
public Fish() {
super();
}
public Fish(String name, int age) {
super(name, age);
System.out.println("名字:"+name+"\t"+"年龄:"+age);
}
@Override
public void eat(){
System.out.println("吃虾米");
}
}
结果1
·
示例2
各类调用自己的私有成员
package com.Hwadee;
/**
*继承例二
*各类调用自己的私有成员
*/
public class Extend {
public static void main(String[] args) {
Car c=new Car();
Truck t=new Truck();
c.setName("擎天柱");
c.setNum(123432);
String name = c.getName();
int num = c.getNum();
System.out.println("名字:"+name+"\n"+"号码:"+num);
t.setCapacity(1000);
int capacity = t.getCapacity();
System.out.println("容量:"+capacity);
}
}
class Car{
private int num;
private String name;
public Car() {
}
public Car(int num, String name) {
this.num = num;
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Truck extends Car{
private int capacity;
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
}
结果二