java学习笔记—— 抽象类接口内部类
Posted 玛丽莲茼蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习笔记—— 抽象类接口内部类相关的知识,希望对你有一定的参考价值。
在之前的学习中,父类其实就是子类的抽象了,比如老虎和兔子都可以被抽象成动物。抽象类是更进一步的抽象,而接口是在抽象类的基础上又抽象了一层。
一、抽象类和抽象方法
1.抽象方法只有方法名,没有方法体。
//抽象类
public abstract class Person
//无参构造函数
public Person()
//有参构造函数
public Person(String name)
//抽象方法
public abstract void run();
//非抽象方法
public void sayHello()
System.out.println("hello,the last day of June");
2.抽象类里可以没有抽象方法,但是只要该类包含一个抽象方法,那么这个类就是抽象类(that is to say,抽象类里可以有非抽象方法)。
3. 抽象类存在构造器(构造函数)吗?
有,并且有参无参都可以有。因为其子类实例化的时候要先调用父类的构造函数,也就是抽象类的构造函数,所以抽象类是有构造函数的。
4. 抽象类不能被实例化(虽然它有构造方法),只能作为其他类的父类
5. 但是由于类只能单继承的局限性,抽象类用的没有接口多(接口可以实现多继承)。
6. 子类实现抽象类依然是extends关键字,子类必须实现抽象类的所有抽象方法。
二、接口
1. 接口只能写“规范”,都是抽象方法,无法写具体的实现(不能出现非抽象的方法)。
2. 接口内的方法默认都是被“public abstract”修饰,可以不写;接口的属性默认都是被“public static final”修饰。but在抽象的时候一般只抽象方法,不会在接口里写属性。
3. 实现类用implements关键字,必须实现接口规定的所有方法。
4. 接口没有构造函数,自然无法实例化(抽象类有构造函数,也不能实例化)。
5. 利用接口实现多继承。在下例中,当前类必须要实现UserService和TimeService的所有方法。
三、内部类
为什么这个类要放在内部?因为就外部那个类自己用,别的类都不用。
概念不用硬记,可以后续慢慢了解
1. 成员内部类
1)内部类如何实例化?
2)内部类可以获得外部类的private属性
2. 静态内部类
静态内部类不能获得外部类的private方法,因为静态类加载的时候id还没加载。
3. 局部内部类
在方法中的类
4.匿名内部类
以上是关于java学习笔记—— 抽象类接口内部类的主要内容,如果未能解决你的问题,请参考以下文章