码迷,mamicode.com
首页 > 编程语言 > 详细

大龄屌丝自学笔记--Java零基础到菜鸟--017

时间:2015-09-11 23:35:47      阅读:447      评论:0      收藏:0      [点我收藏+]

标签:

代码块,继承,this 和 super,方法的重写

 

1、代码块:使用 “{}” 括起来的代码,称为代码块。

构造代码块:在类中的成员位置,用 “{}” 括起来的代码。

静态代码块:构造代码块+静态修饰符。

局部代码快:局部位置,用于限定变量的生命周期。

 1 class Test{
 2     static {
 3         System.out.println("静态代码块");
 4  5 
 6     {
 7         System.out.println("构造代码块");
 8     }
 9 
10     public Test(){
11         System.out.println("局部代码块");
12     }
13 }
14 
15 class Fin{
16     public static void main(String[] args){
17         Test t1=new Test();
18         Test t2=new Test();
19     }
20 }
21 
22 //依次输出:静态代码块,构造代码块,局部代码块,构造代码块,局部代码块

 

2、继承

继承概述:extends,在已经存在的类的基础上建立新的子类,新的子类可以使用父类功能的同时,还可以定义新的功能。

继承格式:class 子类名 extends 父类名,如:class Cat extends Animal{} 。

继承优点:提高了代码的复用性、维护性,使类与类之间产生了关系,是多态的前提。

继承缺点:提高了耦合性(代码的原则:高内聚【独自完成某件事的能力】,低耦合【类与类的关系】)。

继承特点:只能单继承,不支持多继承,即一个子类只能有一个父类;可以多层继承。

注意事项:父类的私有成员(private)不能被继承;父类的构造函数不能被继承,但可以通过 super 关键字访问。

子类方法中访问成员变量:(1)在子类局部范围寻找;(2)在子类成员范围寻找;(3)在父类成员范围寻找;(4)若都不存在则报错。

子类方法与构造函数:子类的所有构造函数默认访问父类无参构造函数。

 

 1 class Animal{
 2     static {
 3         System.out.println("1");
 4     }
 5 
 6     {
 7         System.out.println("2");
 8     }
 9 
10     public Animal(){
11         System.out.println("3");
12     }
13 }
14 
15 class Cat extends Animal{
16     static {
17         System.out.println("4");
18     }
19 
20     {
21         System.out.println("5");
22     }
23 
24     public Cat(){
25         System.out.println("6");
26     }
27 }
28 
29 class Fin{
30     public static void main(String[] args){
31         Cat c=new Cat();
32     }
33 }
34 
35 //依次输出:1,4,2,3,5,6

 

3、this 和 super

this 当前类,如:this.age; , this( 参数 ); 。

super 父类,如:super.age; , super( 参数 ); 。

 

4、方法的重写

方法的重写:override,子类中与父类一模一样的方法声明,会在子类中覆盖掉父类的方法。

重写与重载(override 与 overload):重写,子类中与父类一模一样的方法声明。

                  重载,本类中出现的方法名一样,参数列表不同的方法(与返回值无关)。

方法重写的应用:子类既需要父类的功能,又需要添加自己的特有功能的时候,重写父类方法。

1 class Cat extends Animal{
2     public void play(string toy){
3         super.play(toy);
4         System.out.println("卖萌");
5     }
6 }

 

注意事项:父类的私有成员(private)不能被重写;子类重写父类方法时,访问权限不能比父类低。

大龄屌丝自学笔记--Java零基础到菜鸟--017

标签:

原文地址:http://www.cnblogs.com/liverpool/p/4802308.html

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