zoukankan      html  css  js  c++  java
  • 大龄屌丝自学笔记Java零基础到菜鸟017

    代码块,继承,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---JDK环境变量的配置
    “==” 与“equals(Object)”区别
    js替换字符串中所有斜杠
    uploadify学习笔记
    VBA学习笔记
    浮动导航条的实现
    canvas初识笔记
    EntityFramework存储过程的返回类型
    CSS及html的特殊字符表
    DIV六种实现元素水平居中
  • 原文地址:https://www.cnblogs.com/liverpool/p/4802308.html
Copyright © 2011-2022 走看看