码迷,mamicode.com
首页 > 其他好文 > 详细

day02(继承,重写,this,super,final,抽象类)

时间:2017-08-23 17:33:53      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:static   区别   dsd   print   ring   日常   类对象   生活   其他   

继承

  概述:日常生活中儿女总会继承长辈的遗产,java语言也是。通过继承多种实物之间形成一种关系。

  特点:

    ①一个类只能继承一个父类

    ②一个父类可以有多个子类

    ③可以多层继承(a类继承b类   C类继承a类)

       成员变量特点:(就近原则)

        ①.如果子类没有需要的成员变量,子类可以使用父类的成员变量。

        ②.如果父类的成员变量私有,子类不能访问到。

  成员方法特点:(就近原则)

                             ①如果子类没有需要的成员方法,子类可以使用父类的成员方法。

                            ②.如果父类的成员方法和成员变量私有,子类不能访问到。

  构造方法的执行顺序:

        

/*
 * 继承中构造方法的执行顺序
 * 			在子父类中,创建子类对象,调用子类的构造方法,
 * 			在子类的构造方法的第一行代码如果没有调用父类的构造或者没有调用子类的其他构造,则默认调用父类无参构造
 * 为什么要调用父类构造?
 * 			因为需要给父类的成员变量初始化
 * 肯定会先把父类的构造执行完毕,在去执行子类构造中的其他代码
 * 
 * 我是父类无参构造 --- 我是子类有参构造 --- 我是子类无参构造
 */
public class ExtendsDemo6 {
	public static void main(String[] args) {
		//Die d = new Die();
		Zi z = new Zi();
	}
}

class Die{
	public Die() {
		System.out.println("我是父类无参构造");
	}
	
	public Die(int num) {
		System.out.println("我是父类有参构造");
	}
}

class Zi extends Di {
	public Zi() {
		//super(1);
		//super();
		
		this(1);//不会再调用父类的无参构造了
		
		System.out.println("我是子类无参构造");
	}
	
	public Zi(int num) {
		//会默认调用父类无参构造
		System.out.println("我是子类有参构造");
	}
}	

重写

       意义:因为父类的方法不能够满足子类的需求时,这时需要重写来达到需求。

注意事项:①.父类的方法不能私有

     ②不能被final修饰

     ③建议使用注解(@Override)来规范重写(方法名、返回值类型、参数列表完全相同)

 和重载的区别:

       重载的意义:相似的功能我们需要用相同的方法名来调用来提高代码的健壮性

      方法名相同,参数列表不同(参数类型,参数个数,参数顺序满足至少一个),与返回值无关

this

  意义:表示当前类的对象引用

  作用:调用当前类的成员方法、成员变量、构造方法(this())。

super

 

       意义:表示父类的对象引用

 

    作用:调用父类的成员方法、成员变量、构造方法(this())。

 

final

抽象类

day02(继承,重写,this,super,final,抽象类)

标签:static   区别   dsd   print   ring   日常   类对象   生活   其他   

原文地址:http://www.cnblogs.com/fjkgrbk/p/jicheng.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!