java继承

什么是继承

在Java中,继承是面向对象编程的一个基本特性。它允许我们定义一个新类,它从另一个已经存在的类继承其属性和方法。被继承的类称为父类或超类,新定义的类称为子类。

语法:

public class 子类名 extends 父类名{

}

继承子类的特点

  1. 子类可以有父类的内容
  2. 子类还可以有自己的内容

 继承的好处和弊端

好处:                                                                                                                                        提高了代码的复用性(多个类相同的成员可以放到同一个类中)                                              提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
弊端:                                                                                                                                        继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性。

构造方法访问特点

   子类中所有的构造方法默认都会访问父类中无参的构造方法

因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。

    如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢

通过使用super关键字去显示的调用父类的带参构造方法

在父类中自己提供一个无参构造方法

super关键字

super关键字的用法和this关键子用法相似

this:代表本类对象的引用(this关键字指向调用该方法的对象,一般我们是在当前类中使用this关键字,所以我们常说this代表本类对象的引用)

super:代表父类存储空间的标识(可以理解为父类对象引用)

什么是方法重写

    子类中出现了和父类一模一样的方法声明

方法重写注意事项

   私有方法不能被重写

    子类方法访问权限应该高于父类方法访问权限

继承的注意事项

     Java中类只支持单继承,不支持多继承

      Java中类支持多层继承

例子

使用extends关键字来继承一个类。

public class ParentClass {
    // ...
}
 
public class ChildClass extends ParentClass {
    // ...
}
子类可以添加新的属性和方法。

public class ParentClass {
    public void parentMethod() {
        // ...
    }
}
 
public class ChildClass extends ParentClass {
    public void childMethod() {
        // ...
    }
}
子类可以重写(override)父类的方法。

public class ParentClass {
    public void someMethod() {
        // Parent implementation
    }
}
 
public class ChildClass extends ParentClass {
    @Override
    public void someMethod() {
        // Child implementation
    }
}
子类可以实现父类的抽象方法。

public abstract class ParentClass {
    public abstract void someMethod();
}
 
public class ChildClass extends ParentClass {
    @Override
    public void someMethod() {
        // Child implementation
    }
}
子类可以声明自己的构造器,但是必须在子类构造器中调用父类的构造器。

public class ParentClass {
    public ParentClass() {
        // ...
    }
}
 
public class ChildClass extends ParentClass {
    public ChildClass() {
        super(); // 调用父类构造器
        // ...
    }
}
Java不支持多重继承,但一个类可以实现多个接口,从而获取多个接口的特性。

public interface Interface1 {
    // ...
}
 
public interface Interface2 {
    // ...
}
 
public class ChildClass implements Interface1, Interface2 {
    // ...
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值