java面向对象之继承&&super()与this()的学习

继承概念及作用:

	将不同类中可能有的共同属性和方法,抽取出来定义成一个类。
	实现了代码的重用,减少代码的冗余,易于维护。

基础知识

	java是单继承,只能有一个父类,不允许多继承。
	子类在创建对象的时候,会首先调用父类的构造方法,然后再调用自己的构造方法。
	当父类没有提供无参的构造函数时,子类的构造函数必须显式的调用父类的构造函数。使用super()
	如果父类提供了无参的构造函数,子类默认的调用父类无参构造函数。

代码

		package object;

public class Extends {
//    Extends(){
//        System.out.println("父类的无参构造函数");
//    }
    Extends(String a){
        System.out.println("父类的有参构造函数");
    }

}

class  aa extends  Extends{
	    aa(){
	        super("aaa");
	        System.out.println("子类的无参构造函数");
	    }
	
	    aa(String a){
	        super("a");
	        System.out.println("子类的有参构造函数");
	    }
	
	    public static void main(String[] args) {
	        new aa();
	    }
	}

	输出结果:
		父类的有参构造函数
		子类的无参构造函数

super()与this()

this的用法

	1,形参与成员名重名时
	2,直接引用当前对象本身
	3,引用本类的构造方法,写在第一行

super的用法

		1,子类的成员变量名或方法名与父类的成员变量名或父类方法名重名,用super区分
		2,引用父类的构造方法,写在第一行
		3,引用父类的成员

一图理解,上代码

		package object;

class Person {
    public static void prt(String s) {
        System.out.println(s);
    }
    //构造方法(1)
    Person() {
        prt("父类·无参数构造方法: "+"A Person");
    }
    //构造方法(2) 
    Person(String name) {
        prt("父类·含一个参数的构造方法: "+"A person's name is " + name);
    }
}

class Chinese extends Person {
    Chinese() {
        super(); // 调用父类构造方法(1)
        prt("子类·调用父类无参数构造方法" + "A chinese coder");
    }

    Chinese(String name) {
        super(name);// 调用父类具有相同形参的构造方法(2)
        prt("子类·调用父类”含一个参数的构造方法“: "+"his name is " + name);
    }

    Chinese(String name, int age) {
        this(name);// 调用具有相同形参的构造方法(3)-->调用(2)
        prt("子类:调用子类具有相同形参的构造方法:his age is " + age);
    }

    public static void main(String[] args) {
        Chinese cn = new Chinese();
        cn = new Chinese("people");
        cn = new Chinese("people", 18);
    }
}

	
		输出结果
			父类·无参数构造方法: A Person
			子类·调用父类无参数构造方法A chinese coder
			父类·含一个参数的构造方法: A person's name is people
			子类·调用父类”含一个参数的构造方法“: his name is people
			父类·含一个参数的构造方法: A person's name is people
			子类·调用父类”含一个参数的构造方法“: his name is people
			子类:调用子类具有相同形参的构造方法:his age is 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值