为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第二季

小慕 JAVA开发工程师
难度入门
时长 4小时 0分
学习人数
综合评分95.7
2045人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • 内部类 对象名 = 外部类对象.new 内部类( );

  • Inner类可以使用任意访问控制符

  • 使用抽象类来描述一个类的规则更合理。

  • 接口定义: [修饰符]interface 接口名(extends 父接口1,父接口2) 修饰符不能用private和protected
    01:22
    看视频
  • 1.抽象类是父类,限制子类必须具有哪些方法,不关注实现过程。 public abstract void call();没有花括号方法体 2.抽象类不能直接创建对象,要用引用。 Shap circle = new Circle();
    01:49
    看视频
  • 接口可以多继承,继承多个父接口的时候需要用中括号括起来。接口中的属性都是常量,即使定义时不添加public static final 修饰符,系统也会自动加上。接口中的方法都是抽象方法,即使定义时不添加public abstract修饰符,系统也会自动加上。

    定义接口类的时候省略了abstract

    定义接口类中的方法时也省略了abstract

  • 包含抽象方法的类一定是抽象类,抽象类和抽象方法都需要添加关键字 abstract,且顺序为 abstract class

  • 父类的引用是可以指向子类对象的

    通过instanceof关键字避免强制类型转换存在的问题。

    引用类型转换:

    1. 向上类型转换(隐式/自动类型转换)是小类型到大类型的转换

    2. 向下类型转换(强制类型转换)是大类习性到小类型

    3. instanceof运算符来解决引用对象的类型,避免类型转换的安全性问题

       表示前面的类型是否含有后面的类型,返回boolean

    可用if与instanceof搭配

    例子:if(animal instanceof Cat){

                    Cat cat=(Cat)animal;

              }else{

                    System.out.println("无法将类型转换成Cat类型");

              }


  • 引用多态

    ①父类的引用可以指向本类的对象

    ②父类的引用也可以指向继承的子类的对象

    方法的多态

    ① 父类引用可以调用本类自己的方法

    ②父类引用也可以调用继承的子类的方法

    注意: 若继承的子类没有重写,默认指向父类的方法. 若子类有单独的方法不是通过继承来的,父类的引用是不可以调用的


    1. 接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。

    2. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的细节,它只规定这些类里必须提供某些方法。

    3. 定义接口不再使用class关键字,而是使用interface字。

    4. 【修饰符】interface 接口名【extend 父接口1,父接口2..】,父接口可以继承也可以不继承

      { 零个到多个常量定义,零个到多个抽象方法的定义

      }

    5. 实现接口使用implements关键字,如果要继承父类,继承父类必须在接口之前。

  • 没有重写 toString 方法的情况下直接用 print 打印对象,输出的是(对象的地址 )

    重写后输出的是对象的值。

    1. 在某些情况下,某个父类只是知道其子类应该包含怎么样的方法,但是无法准确知道这些子类如何实现这些方法。抽象类只是约束子类应该有哪里方法,但是不关注其如何实现。

    2. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性。

    3. abstract定义抽象方法,只有声明,不需要实现。包含抽象方法的类是抽象类。抽象类也可以包含普通的方法,也可以没有抽象方法。

    4. 抽象类不能直接创建,可以定义引用变量。抽象类方法没有方法体以分号结束。

  • public class HelloWorld {

        

        String name; // 声明变量name

    String sex; // 声明变量sex

    static int age;// 声明静态变量age

        

        // 构造方法

    public HelloWorld() { 

    System.out.println("通过构造方法初始化name");

    name = "tom";

    }

        

        // 初始化块

    System.out.println("通过初始化块初始化sex");

    sex = "男";

    }

        

        // 静态初始化块

    static  { 

    System.out.println("通过静态初始化块初始化age");

    age = 20;

    }

        

    public void show() {

    System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);

    }

        

    public static void main(String[] args) {

            

            // 创建对象

    HelloWorld hello = new HelloWorld();

    // 调用对象的show方法

            hello.show();


  • super的应用

        子类的构造的过程当中必须调用其父类的构造方法。
        
        如果子类的构造方法中没有显式调用父类的构造方法,则系统默认调用父类无参的构造方法
        
        如果显式的调用构造方法,必须在子类的构造方法的第一行。
        
        如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。


  • final关键字

        使用final关键字做标识有“最终的”含义

    final可以修饰类、方法、属性和变量

        final修饰类,则该类不允许被继承

        final修饰方法,则该方法不允许被覆盖(重写)

        final修饰属性

            则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)

        final修饰变量,则该变量的值只能赋一次值,即变为常量

举报

0/150
提交
取消
课程须知
本课程是Java开发的基础,需要大家:掌握 Java 基本语法的使用。如果您是新手,建议先移步 《Java入门第一季》
老师告诉你能学到什么?
• 掌握 Java 基本语法和编程思路 • 熟练运用面向对象程序设计思想
意见反馈 邀请有奖 帮助中心 APP下载
官方微信