前言
今日主要内容:
1)抽象类、抽象方法使用
2)接口类及其实现*
3)多态*
3)内部类(了解)
一、抽象的 abstract
抽象方法 :
被abstract修饰的方法
没有方法体
必须存在与抽象类中
抽象类 :
被abstract修饰的类
例:
/*
开发部门 Develop : work()
Java 开发工程师 work:服务器端开发
Web 开发工程师 work:浏览器端开发
*/
abstract class Develop{
//抽象方法
public abstract void work();
}
//具体子类
class Java extends Develop{
@Override
public void work() {
System.out.println("服务器端开发");
}
//新增
public void haha(){
System.out.println(".......");
}
}
//抽象子类
abstract class Web extends Develop{
@Override
public void work() {
System.out.println("浏览器端开发")
}
}
注意:
1.抽象类不能实例化
2.抽象方法必须存在与抽象类中
3.抽象类中可以定义抽象方法,可以定义具体方法(存在方法体的方法),可以定义属性,构造器...
4.抽象方法必须被重写才能使用,调用重写后的方法
5.抽象类与子类的关系|抽象类的使用 :
1)具体子类(没有被abstract修饰的类) :
重写所有抽象方法+按需新增
2)抽象子类
按需重写 + 按需新增
6.abstract 不能与static,final,private,native关键字一起使用
二、接口
接口定义 :
使用interface定义接口
实现class定义类
接口的优点|特点:
1)接口是一个引用数据类型(类 接口 数组)
2)特殊的抽象类
3)功能的集合,抽象方法的集合
4)类只能单继承,接口可以多实现
5)定义开发规范
6)实现解耦,降低耦合度(紧密联系程度)
接口的使用
1.接口不能实例化
2.实现类实现接口 implements
3.一个类可以多个接口,但是继承一个父类
4.实现类与接口 :
具体实现类 : 重写所有抽象方法 + 按需新增
抽象实现类 : 按需重写+按需新增
5.一个类如果同时继承父类,实现接口,需要先继承后实现
6.类与类之间只能单继承
类与接口之间,只能类实现接口,可以多实现
接口与接口之间,只能继承,但是可以多继承
实现与继承 :
实现类实现接口
子类继承父类
类只能单继承,接口可以多实现
继承 : 子类一旦继承父类,父类的成员子类继承到能够直接使用,个别不满意,子类中进行重写
实现 : 接口中的功能,实现类拿到需要先对方法进行重写,所有的抽象方法需要实现类先实现,才能使用
三、多态
一种事物的多种形态|多种表现形式|一个功能的多种实现方式
多态的最终表现形式 :
父类引用指向子类对象
多态的前提 : 类的继承|接口实现
多态调用 : 多态引用调用如果子类中存在重写,会调用重写后的方法,对子类新增内容不可见
成员变量 :
编译运行看父类|左边|类型
成员方法 :
编译看父类|左边|类型,运行找子类|右边|对象,子类没有重写找父类
总结 : 多态如果不配合方法的重写,是没有意义的
java中的多态指行为多态,一个功能的不同实现方式
四、内部类(了解)
类中定义类
分类 :
成员内部类
静态内部类
私有内部类
局部内部类
匿名内部类 ***
成员内部类
定义在外部类的成员位置
特点 :
被成员修饰符修饰
可以继承父类,实现接口
注意:
除了静态内部类中可以定义静态内容,其他内部类中不可以定义静态内,除了静态常量
在成员内部类中可以直接使用外部类中的成员,包括私有的
外部类中需要通过成员内部类的对象调用其成员
在其他类中,通过外部类对象创建成员内部类对象,通过成员内部类对象调用其成员
私有内部类
被private关键字修饰的成员内部类
在私有内部类中可以直接使用外部类中的成员,包括私有的
在外部类中可以通过私有内部类的对象调用其成员
其他类中不能使用私有内部类
静态内部类
静态内部类中可以定义静态内容
静态内部类的方法中可以直接使用外部类的静态内容,需要通过对象使用成员
在外部 类中需要 通过静态内部类的对象访问其成员内容,可以通过静态内部类的类名访问其静态内容
其他类中使用静态内部类中的内容 :
1)访问静态内部类的静态内容 :
根据外部类类名找到内部类,通过内部类类名访问静态内容 外部类类名.内部类类名.静态内容
2)访问静态内部类中的成员内容 :
根据外部类类名,找到静态内部类,创建内部类对象访问成员内容 new 外部类类名.内部类类名()
总结
内部类剩余内容后续进行补充,了解即可,注意区分