JAVA中的继承

1、继承的概念

继承:从已有的类中派生出一个新的类,使得新类拥有已有类中所有的非私有的属性和方法,并能扩展出新的属性和方法。

超类:父类:已有的类

派生类:子类:新的类

2、继承的限制

JAVA是单继承机制,一个类只能有一个父类;

但是可以多层继承,一个类的父类也可以有自己的父类,相当于子类继承了父类也继承了父类的父类;

子类不能继承父类的私有成员

3、子类实例化过程

子类实例化时,先执行父类的构造方法,实例化父类之后,再实例化子类。

通常,如果子类的构造方法没有显式写出来,而是使用了默认无参的构造方法,父类必须存在无参的构造方法,否则,编译报错,这时在子类中往往隐含了super()调用父类,如下:

class A{

private String name;

public void setName(String name){

this.name = name;

}

}

class B extends A{

private int age;

}

上面的代码等价于:

class A{

private String name;

public void setName(String name){

this.name = name;

}

}

class B extends A{

private int age;

B(){

super();

}

}

如果子类中定义了构造方法,则在构造方法中可以通过super调用父类带参的构造方法,也可以是么都不写,调用父类默认无参的构造方法。

4、方法的重写

方法的重写发生在继承关系中,子类重写父类的相关方法。子类中重写与父类重名的方法。

被重写的方法的访问权限不能为private。

子类的访问权限不能小于父类的访问权限。

如下代码不是方法的重写,而是方法的重新定义:

class A{

void a(){

};

}

class B extends A{

public void a(){

}

方法重写以后,不论是父类中,还是其他地方,所有调用方法都调用重写后的方法,若需要调用父类中的原方法,只能通过super.方法()调用。

5、继承的应用实例

public class ExtendsExample {
public static void main(String args[]){
Student student = new Student("张三","c09123");
System.out.print(student.getInfo());
}
}
class Person{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public Person(String name){
this.name = name;
}
public String getInfo(){
return "姓名:"+this.name;
}
}
class Student extends Person{
private String num;
public void setNum(String num){
this.num = num;
}
public String getNum(){
return this.num;
}
public Student(String name,String num){
super(name);
this.num = num;
}
public String getInfo(){
return super.getInfo()+",学号:"+this.num;
}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值