面向对象-5.9


前言

今日主要内容:
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 外部类类名.内部类类名()

总结

内部类剩余内容后续进行补充,了解即可,注意区分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值