java核心基础---继承

一.继承概述

继承是面向对象的三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。

继承是指在原有类的基础上,进行功能扩展,创建新的类型。

继承的特点:子类可以拥有父类的内容,子类还可以有自己特有的内容。

继承的本质说白了就是子类能够使用父类的方法和变量。一个类之中实现了一个很复杂的方法,再给你一个新的类,要求重新实现这个方法,就直接继承。

二.继承的格式

格式:public class 子类名 extends 父类名{}

比如:public class Lianghao extends Guo{}

这里,Lianghao是子类,也被称为派生类,Guo是父类,也被称为基类,超类

三.继承的优缺点

优点:1.实现了数据和方法的共享

2.提高代码的复用性

3.提高代码的维护性

4.提高代码的可拓展性

弊端:增加了类和类之间的耦合性,削弱了子类的独立性

四.代码举例

public class Stu{
	public String sno;
	public void study() {
		System.out.println("我爱学习");
	}
}

class XiaoMing extends Stu{
	
}
class XiaoHong extends Stu{
	
}

class Demo {
	public static void main(String[] args) {
		XiaoHong xiaohong =new XiaoHong();
		XiaoMing xiaoming =new XiaoMing();
		
		xiaoming.sno="123";
		xiaohong.sno="456";
		
		xiaohong.study();
		xiaoming.study();
		
		System.out.println(xiaohong.sno);
		System.out.println(xiaoming.sno);
	}
}

XiaoMing类和XiaoHong类继承Stu类,两个类的对象都可以调用父类的方法以及变量。

五.带有继承的程序的表达顺序

public class Test extends Base{
    static{
        System.out.println("Test static");
    }
    public Test(){
        System.out.println("Test constur");
    }
    public static void main(String[] args) {
        System.out.println("main---1");
    	new Test();
        System.out.println("main---2");
    }
}
class Base{
    static{
        System.out.println("Base  static");
    }
    public Base(){
        System.out.println("Base constur");
    }
}

大家可以先自己看一看这段程序,思考一下哪些会先输出哪个,后输出哪个。

在main方法入栈之前,会先对程序进入一轮扫描,加载到内存,之后才是程序的表达。

在扫描的过程中,扫描到Test,发现其父类Base,因为Base是Test的父类,所以会先加载Base,然后才会加载Test。

前面的文章说过static修饰的代码块会先进行输出,因此在main方法表达之前就会先输出

Base static和Test static

之后是main方法执行,输出main1

new Test ();创建一个Test对象的时候会先调用其父类的构造器再调用子类的构造器

因此输出Base constur再输出Test constur

最后输出main---2后main方法出栈,代码执行结束

因此最后输出结果为:

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值