类的继承

Java面向对象技术的三大特性之一:继承性。
Java中继承的定义:从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
关键词:extends implements
一,extends
在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,定义格式如下

class 父类 (){
}
class 子类 extends 父类(){
}

子类可以继承父类的属性和方法,通过继承,子类代码也更加简洁,提高代码的复用,首先看一下没有继承时的代码:

public class Bird {
	//Bird的属性
	String name;
	int age;
	public Bird (String name,int age) {
		this.name=name;
		this.age=age;
	}
	//Bird方法
	public void eat() {
		System.out.println(name+"正在吃");
	}
	public void sleep() {
		System.out.println(name+"正在睡");
	}
	public void intro() {
		System.out.println("我的名字是"+name+","+"我的年龄是"+age);
	}
}
public class Dog {
	//Dog的属性
	String name;
	int age;
	public Dog (String name,int age) {
		this.name=name;
		this.age=age;
	}
	//Dog方法
	public void eat() {
		System.out.println(name+"正在吃");
	}
	public void sleep() {
		System.out.println(name+"正在睡");
	}
	public void intro() {
		System.out.println("我的名字是"+name+","+"我的年龄是"+age);
	}
}

再来看一下继承时的代码:
Animal类(父类)

public class Animal {
	//Animal的属性
	String name;
	int age;
	public Animal(String name,int age) {
		this.name=name;
		this.age=age;
	}
	//Animal方法
	public void eat() {
		System.out.println(name+"正在吃");
	}
	public void sleep() {
		System.out.println(name+"正在睡");
	}
	public void intro() {
		System.out.println("我的名字是"+name+","+"我的年龄是"+age);
	}
}

Bird类(子类):

public class Bird extends Animal { 
    public Bird(String name, int age) { 
        super(name, age); 
    } 
}

Dog类(子类):

public class Dog extends Animal { 
    public Dog(String name, int age) { 
        super(name, age); 
    } 
}

通过上面的代码,我们可以看出继承的重要性。代码中子类用到了一个关键词super。当前的子类与其直接父类在构造方面存在约束关系,用简单的话来说,子类的的构造方法中必须调用其直接父类的构造方法,格式如下:

public class A extends B (){
	public A(定义的参数列表){
			super(调用参数列表);
	}
}

除此之外,还有this关键字,这是指向自己的引用
需要注意的是 Java 不支持多继承,但支持多重继承。比如B extends AC extends B,这是可以的,但C extends A,B是不可以的。也可以多个类继承同一个类。
二,implements
使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔),格式如下

public interface A {
}
public interface B {
}
public class C implements A,B {
}

C也可以继承接口A,B的属性和方法。
注意:1.有final修饰的类不能被继承
2.当一个类中没有extends,implements时,默认继承ObjectObject是所有类的父类)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值