Java初学(六)

一、final(最终)可以修饰类、方法、变量

  特点:final修饰类,该类不能被继承

     final修饰方法,该方法不能被重写(覆盖、重载、复写)

          final修饰变量,该变量不能被重新赋值。因这个变量成为了常量。但可以被子类访问;

  推出:常量分为:字面值常量("hello",10,true)和自定义常量(final int x=10)

  final修饰局部变量时,基本类型的值不能改变

            引用类型的地址不能发生改变,但是,该对象的堆内存的值是可以变的

二、多态中成员访问特点

  1、成员变量:编译看左边,运行看左边

  2、构造方法:创建子类对象的时候,访问父类的构造方法,对父类进行初始化

  3、成员方法:编译看左边,运行看右边

  4、静态方法:编译看左边,运行看左边(静态方法和类相关,算不上重写,所以访问还是左边)

三,图解父子类属性方法调用

四、接口成员特点

  成员变量:只能是常量,并且是静态的。默认修饰符:public static final,建议手动写出

  构造方法:接口没有构造方法

  成员方法:只能是抽象方法,默认修饰符:public abstract,建议手动给出(接口方法不能有主体,静态方法是类方法,故接口方法不能是静态的)

  所有的类都默认继承自Object,类Object是类层次结构的根类,每个类都是用Object作为超类

五、抽象类和接口区别

  1、成员区别:

    抽象类:

      成员变量:可以是变量,也可以是常量

      构造方法:有

      成员方法:可以是抽象,也可以是费抽象

    接口:

      成员变量:只可以是常量

      成员方法:只可以是抽象

  2、关系区别:

    类与类:继承,单继承

    类与接口:实现,单实现,多实现

    接口与接口:继承,单继承,多继承

  3、设计理念区别:

    抽象类:被继承体现的是“is a”的关系;抽象类中定义的是该继承体系的共性功能

    接口:被实现体现的是“like a”的关系;接口中定义的是该继承体系的扩展功能

时间: 2024-08-08 12:32:37

Java初学(六)的相关文章

Java解惑六:库之谜

本文是根据JAVA解惑这本书,做的笔记. 电子书见:http://download.csdn.net/detail/u010378705/7527721 谜题56 BigInteger.BigDecimal以及包装类型的实例是不可改变. BigInteger five = new BigInteger("5"); BigInteger total = BigInteger.ZERO; total.add(five); //这并不会改变total的值,调用该方法的返回值,才是加法得到的结

【JAVA】六 JAVA Map 一 HashMap

[JAVA]六 JAVA Map 一 HashMap JDK API java.util Interface Map Type Parameters: K - the type of keys maintained by this map V - the type of mapped values All Known Subinterfaces: Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMe

Java初学之华容道游戏

1 package hhuarongdao; 2 3 public class example { 4 public static void main(String args[]) 5 { 6 new Hua_Rong_Road(); 7 } 8 } 1 package hhuarongdao; 2 import java.awt.*; 3 import javax.swing.*; 4 5 import java.awt.event.*; 6 public class Hua_Rong_Roa

“全栈2019”Java第六十章:如何定义接口

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第六十章:如何定义接口 下一章 "全栈2019"Java第六十一章:如何实现接口? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全

“全栈2019”Java第六十一章:如何实现接口?

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第六十一章:如何实现接口? 下一章 "全栈2019"Java第六十二章:接口与常量详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组".

“全栈2019”Java第六十三章:接口与抽象方法详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第六十三章:接口与抽象方法详解 下一章 "全栈2019"Java第六十四章:接口与静态方法详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&qu

“全栈2019”Java第六十四章:接口与静态方法详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第六十四章:接口与静态方法详解 下一章 "全栈2019"Java第六十五章:接口与默认方法详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&qu

Java数组六

1.了解如何利用二维数组和循环语句绘制五子棋盘 答:  定义一个二维数组来充当棋盘,定义棋盘大小,初始化棋盘数组,利用for循环使每一个元素赋为"+",然后输出每个数组元素,每打印完一行后在进行换行. import java.io.*; public class QiPan { //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE = 15; public void initB

java第六周学习总结

学号20145336 <Java程序设计>第五周学习总结 教材学习内容总结 第十章 输入与输出 InputStream与OutputStream java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象.从程序角度来看,如果将数据从来源中取出,可以使用输入串流,如果将数据写入目的地可以使用输出串流.在java中,输入串流对象为java.io.InputStream实例,输出串流对象为java.io.OutputStream实例.流(Stream)是对「输入输出」的抽象,注意「