JAVA知识回顾-第五天
Interface与abstract类的介绍
- Final和abstract永远不会同时出现
- abstract和static不能放在一起,否则便会出现错误(这是因为static不可被覆盖,而abstract为了生效必须被覆盖)
- Interface(接口)
- 所有方法都是公开、抽象方法,所有属性都是公开、静态、常量
- 类只能是实现接口,并且可以实现多个接口,类必须实现接口的方法,否则为抽象类
- 接口可不写public,但子类中实现接口的过程中public不可省
- 接口和接口之间可以允许多继承
- 接口是实现了不同层次、不同体系对象的共同属性
- abstract类(抽象类)
- 如果一个类如果要添加抽象方法就必须将类设置为abstract
- abstract类必须被继承使用,不能生成对象
- abstract的方法不可以private修饰
- 其子类必须覆盖父类的抽象方法
Static class与not static class的区别
- 静态内部类只属于类本身,不属于莫一类的对象
- 静态内部类可以脱于外部类被创建(new一个静态内部类不需要外部类成员)
- 一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面
- 静态内部类不需要有指向外部类的引用,非静态内部类需要持有对外部类的引用。
- 非静态内部类能够访问外部类的静态和非静态成员,静态类不能访问外部类的非静态成员,他只能访问外部类的静态成员
java多态的实现原理
- 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法
实现多线程的两种方法:Thread与Runable
public class Six {
public static void main(String[] args) {
MyThreadRunnable mr = new MyThreadRunnable();
new Thread(mr).start();
new Thread(mr).start();
new MyThread().start();
new MyThread().start();
}
}
class MyThreadRunnable implements Runnable {
@Override
public void run() {
}
}
class MyThread extends Thread {
@Override
public void run() {
}
}
- 可以看出Thread()启动时继承Thread方法,Thread(Runnable target)启动中Runnable实现接口Runnable
- 在启动方式上:继承Thread的可以直接new出来启动,实现Runnable接口的类new出来需要通过Thread来启动
- 由上一点和代码可以看出,Runnable的实现类只new了一次,可见启动多线程操作的是一个类
我的感受
- 要记住接口中方法默认不会加上static~(>_<)~,(上有解释)
- 非静态内部类默认会有对外部类的隐式引用。。。
- 多态让我想起前一天java复习,还写了多态的理解~(~ ̄▽ ̄)~
想说的话
- 博客坚持写,今后学习了新的东西就在这里记录一下,以便今后回顾,也希望小小笔记能帮助你们
- 若内容有什么地方不对、不清楚,还望吐槽,希望大家能一起成长
- 来一个:从来没有一个由开发能力的人找不到工作的例子,找不到工作,只能说明我技术活不到位