Java中类的继承
继承是面向对象三大特征之一,三大特征分别为封装、继承、多态
继承的基本作用是:代码复用。有了继承之后才有“方法覆盖”和“多态机制”。
继承语法格式:
【修饰符列表】class类名extends父类名{
类体=属性+方法
}
java中只支持单继承,一个类只能继承一个类,不能同时继承多个类。
子类继承父类
子类、派生类——subclass
父类、基类、超类——superclass
子类继承父类哪些数据?
——私有的不支持继承
——构造方法不支持继承
——其他数据都可被继承
public class Inherit {private String name; //用于继承public Inherit(){ this(null); } public Inherit(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; }}public class InheritTest extends Inherit{ //继承了Inherit中的getname和setname方法}public class Test { public static void main(String[] args){ InheritTest i = new InheritTest(); i.setName("jack"); //通过InheritTest类来调用Inherit类的setname和getname方法 System.out.println(i.getName()); }}
虽然java中只支持单继承,但一个类可间接继承其他类,如:
C extends B{}B extends A{}A extends T{}
C类直接继承B类,间接继承A、T类
在测试继承的时候出现了 ‘InheritTest.this’ cannot be referenced from a static context 的问题,这属于内部类调用问题,因为非静态变量类型不能在静态上下文中引用。将内部类改为static,问题解决。
public class InheritTest{ public static void main(String[] args){ C c = new C(); c.dosome(); } static class A { public void dosome(){ System.out.println("调用了该方法11"); } } static class B extends A{ public void dosome(){ System.out.println("调用了该方法22"); } } static class C extends B{ }}//运行结果:调用了该方法22Process finished with exit code 0
假设一个类没有显示继承任何类,该类默认继承javaSE库中的java.lang.Object类
(补充)如果父类实现了某一个接口,则子类继承父类会自动实现这个接口,已经实现的方法也会继承过来;如果父类是个抽象类,则需要子类重写实现接口的方法。
以上就是长沙一度软件培训java培训机构的小编针对“初学者需要学会的Java继承类”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。