首页 > 编程语言 >java SE 狂神笔记

java SE 狂神笔记

时间:2022-09-25 10:12:50浏览次数:57  
标签:java 子类 接口 static 狂神 父类 方法 抽象类 SE

1.包机制:区别于类名的命名空间,一般利用公司域名倒置作为包名(www.baidu.com ——> com.baidu.www)


2.super注意点:

  a. super调用父类的构造方法,必须在构造方法的第一个;

  b. super必须只能出现在子类的方法或者构造方法种;

  c. super 和 this 不能同时调用构造方法;


3. 多态:同一方法可以根据发送对象的不同而采用多种不同的行为方式;

  a. 一个类的实际对象是确定的,但是指向这个对象的引用类型可以是任意的(本类、父类、Object类或有关系的类);

  b. 对象能执行哪些方法,主要看对象左边的类型;

  c. 子类重写父类的方法,多态的时候执行子类的方法;(父类型可以指向子类型,但是不能调用子类独有的方法)

  注意事项:

    a. 多态是方法的多态,属性没有多态;

    b. 子类和父类之间有联系,父类可以强制转换成子类(高转低)(如果父类子类存在转换异常会产生 ClassCastException异常);

    c. 存在条件:有继承关系,方法需要重写,父类的引用指向子类(Person p = new Son());

    存在以下几种不能使用多态: static 方法,属于类,不属于实例; final 常量,属于常量池内;③ private 方法;


4. instanceof:判断一个对象是什么类型;(x instanceof y)能否编译通过取决于是否存在父子关系;

5. 类型转换(引用类型) :子类转成父类不需要强制转换,但是在转换过程中会丢失子类原有的一些方法;父类转子类由于是高转低,需要强制转换;

6. static:

  最明显的区别:static 修饰的方法,在引用的时候,不需要实例化对象,直接 类名.方法() 就可以,而不用 static 修饰的普通类,使用的时候需要 new 类名.方法();

  匿名代码块、静态代码块(类中使用static { ... });

  匿名代码块,类创建的时候就自动创建了,位于构造器之前;一般可以用来赋初值;

  静态代码块,类一加载就执行,只执行一次

  静态导入包,import static java.xx.xx.xx; 

7. final:被final修饰的类没有子类;

8. 抽象类:

  可以认为是一个约束,abstract 方法可以只有方法名字,没有方法的实现;

  继承抽象类的类,必须要重写没有实现的abstract方法;除非子类也是抽象类;

  extends:java里只能单继承,但是接口可以实现多继承;

  抽象类的特点:

    a. 有抽象方法,该类必须声明为抽象类;抽象类可以有非抽象方法;

    b. 不能实例化抽象类,只可以靠继承抽象类的子类去实现它,抽象类仅仅是一个约束;


9. 接口接口的本质是契约;interface声明接口;接口必须都要有实现接口中方法的类;

  a. 接口中的所有定义都是抽象的 public abstract(默认,因此可以直接写 方法名())

  b. 实现接口中的类必须要实现接口中所有的方法:接口 UserService,实现接口的类一般命名为 UserServiceImpl;// public class UserServiceImpl implements UserService { ... } 可以使用 alt + ins 快速生成重写模板;

  c. 实现方法的类可以同时实现多个接口,但必须全部实现类中的方法;

  d. 接口中定义的属性都是静态常量;(int age = 99;// public static final int age;)

  接口的作用:① 是约束;② 定义一些方法,让不同的人实现;③ public abstract ④ public static final ⑤ 接口不能被实例化,因为没有构造方法;⑥ implements 可以实现多个接口 ⑦ 必须重写接口中的方法

标签:java,子类,接口,static,狂神,父类,方法,抽象类,SE
From: https://www.cnblogs.com/LinxhzZ/p/16726857.html

相关文章

  • java读取文本文件的方法
     转自:http://www.java265.com/JavaJingYan/202110/16350339921562.html文本文件是我们日常开发中,常用的简单存储载体,那么如何读取文本文件呢?下文笔者将通过示例的方式......
  • Java基础第一天
    一、Java基础语法由美国sun公司在1995年推出的Java语言Java之父:詹姆斯·高斯林Java发展史:2004年Java5.0(Java里程碑),2009年被Oracle甲骨文公司收购,2014年Java8版本三个......
  • 在Java中public,private,protected的区别
    1>  public表示紧跟其后的成员可以被任何人引用2>  private:表示紧跟其后的成员除了创建这和类型内部的方法,任何人都不可以引用,否则程序编译报错.    私有......
  • 浏览器有哪些缓存?localStorage、sessionStorage、cookie的、session的区别是什么?
    浏览器的缓存机制提供了可以将用户数据存储在客户端的方式,可以利用cookie,session等跟服务器端进行数据交互1.保存方式cookie保存在浏览器端session保存在服务器端2.......
  • jquery判断select中是否存在某个value以及进行增加、删除操作
    一、判断select中是否存在值为value的项functionisExistOption(id,value){varisExist=false;varcount=$('#'+id).find('option').length;......
  • seata的部署和集成
    seata的部署和集成一、部署Seata的tc-serverwindow版安装1.下载首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html   2.解压在非......
  • This MySqlConnectioin is already in Use异常处理
    ThisMySqlConnectioinisalreadyinUse异常处理记录今天使用EFCore和Mysql的时候,遇到了一个问题,具体描述如下:Nuget安装了Pomelo.EntityFrameworkCore.MySql,然后在同......
  • html中select option原生JavaScript按照value值 或 按照文本 选择指定选项
    每次搜索大家都在说JQ。。但是我只会用原生js  因为强迫症 不想因为一个小功能引入一个大的js文件以下是原生JavaScript按照value值或按照文本选择指定的optio......
  • 哈!一篇给小吴的'surprise'
    首先当然是‘摘要’啦!摘要是论文中的一个重要部分,会简单介绍一下整篇文章。当然这里的摘要不是真的摘要,也就简单的说一说写这篇文章的目的以及一些内容概要了。emmm,当......
  • 11、springsecurity
    @GetMapping用于将HTTPGET请求映射到特定处理程序方法的注释。具体来说,@GetMapping是一个作为快捷方式的组合注释@RequestMapping(method=RequestMethod.GET)。......