继承

如果类B具有类A的全部属性和方法,而且又具有自己特有的某些属性和方法,则把类A称为一般类,把类B称为特殊类。这种一般和特殊的结构,可以用继承所表达和实现,继承使得某类对象可以继承另外一类对象的属性和方法。

若类B继承类A时,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作)。称被继承的类A为基类.父类或超类,而称继承类B为A的派生类或子类。

类继承又称类派生,是基于某个父类的扩展,定义一个新的子类,子类可以继承父类原有的属性和方法,也可以增加父类不具备的新的属性和方法,或者根据子类自己的情况重写父类中某些方法。继承避免了对一般类和特殊类之间共同特征进行的重复描述。

例如,平行四边形是特殊的四边形,可以说平行四边形类继承了四边形类,这时平行四边行类将所有四边形具有的属性和方法都保留下来,并基于四边形类扩展了一些新的平行四边形类特有的属性和方法。

其具体格式如下:

[修饰符] class 子类名 extends 父类名{

        //定义新的属性

        //重新定义父类中已有的属性

        //定义新的成员方法

        //重写父类中成员方法

}

说明:

(1)修饰符同类的声明,[public|省略],或者[final|],或者都不选。

(2)子类名必须符合命名规则。

(3)extends是关键字。

(4)父类,可以是自定义的类,也可以是系统类库中的类。如果省略父类,其默认的父类是java.lang.Object类。

(5)子类可以添加新的成员变量和成员方法,也可以隐藏父类的成员变量或者覆盖父类中的成员方法。

(6)Java只支持单继承。

(7)类之间的继承具有传递性。

Java中,类java.lang.Object是一切类的父类或根类,所有的类都是通过直接或间接地继承java.lang.Object得到的。因此,往往把Object称为万类之源。

Java不支持多重继承,一个子类只能继承一个父类,父类包括所有直接或间接继承它的类。类的继承可以传递,一个子类也可以成为其他类的父类。但是从实际生活中或者从理论上说,一个类可以有多个子类,而它同时也可以从多个父类中继承属性和方法,这便是多重继承。而Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。

package page83;
class Shape{
String type; //类别
public void setType(String type) { //成员方法,设置其图形类型
this.type=type;
}
public String getType() {
return type;
}
}
class Circle extends Shape{
double radius; //定义自己的成员变量
public double getRadius() { //定义自己的成员方法
return radius;
}
public void setRadius(double radius) {
this.radius=radius;
}
public double getArea() {
double area=Math.PI*radius*radius; //计算圆的面积
return area;
}
public double getPerimeter() {
return 2*Math.PI*radius; //计算并返回圆的周长
}
}
public class TestCircle {
public static void main(String[] args) {
Circle myShape=new Circle();
myShape.setType("圆"); //调用超类的方法
myShape.setRadius(5.2); //调用子类的方法
System.out.println("myShape的类别是:"+myShape.getType());
double area=myShape.getArea();
System.out.println("myShape的面积是:"+area);
System.out.println("myShape的周长是:"+myShape.getPerimeter());
}
}

输出结果为:

myShape的类别是:圆
myShape的面积是:84.94866535306801

myShape的周长是:32.67256359733385

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值