JAVA类与对象(2)

JAVA类与对象

  • 抽象类
    1.abstract创建的类称为抽象类,其中可以包括普通方法,也可以有抽象方法
    2.如果一个类中包含了一个抽象方法,那么这个类必须被声名成一个抽象类
    3.被abstract修饰的方法是抽象方法,抽象方法没有方法体
    4.抽象类不可以被实例化
    5.当一个类继承了一个抽象父类,有两种解决方案:a.变成抽象子类(“躺平”,我也不实现,继续抽象);2.实现抽象父类的所有抽象方法(父债子偿)
    作用:
    1.可以被子类引用,提供共性属性和方法
    2.可以声明为引用,更自然地使用多态
    3.抽象父类依附于子类,完整子类对象=父类共性+子类独有
abstract public People(){
}
  • 抽象方法
    只有方法声明,没有方法实现,只能在抽象类中
  • final方法
    final修饰类表示此类不能被继承
    final修饰方法表示此方法不能被重写
    final修饰变量:
final int num = 0;//此变量值不能被改变
final String name;//错误,name成为了常量,可以在定义市赋初值,并且只能赋值一次
//修饰静态变量则变成静态常量
final People p = new People;  //修饰引用类型:地址不可变
  • 接口
    接口(interface)相当于特殊的抽象类。
    特点
    1.不可以有普通方法,并且它全部都是抽象方法
    2.用implements实现,类名Impl,实现方案:
    a、抽象子类,不实现/实现部分
    b、普通实现类,实现全部抽象方法
    3.如果一个类没有明确指定父类,那么他的父类就是顶级父类Object。既然接口实现类实现了接口,接口中又没有构造方法。那么第一行的super()使用的是默认继承的Object中的无参构造
    4.静态资源可以被接口名直接调用
    5.接口时先天预定的设计
    6.接口中的都是抽象方法,可以简写,默认拼接public abstract
    7.接口之间可以多继承,一个类可以实现多个接口
    与抽象类相似之处:
    1.可编译成字节码文件
    2.不能创建对象
    3.可以作为引用类型
    4.具备Object类中所定义的方法
    不同之处:
    1.所有属性都是公共静态变量,隐式修饰
    2.所有方法都是公共抽象方法,同样是隐式修饰
    3.没有构造方法、动态代码块、静态代码块
    接口引用:
    同父类一样,接口也可以声明为引用,并指向实现类对象
    接口多态:
    1.多种不同类型的引用指向同一个对象时,表示看待对象的视角不同。
    2.不同引用所能看到的对象范围不同,只能调用自身类型中所声明的部分。
    常量接口:
    将多个表示状态或固定值的变量,以静态常量的形式来在接口中进行统一管理。
    标记接口:
    不包含任何成员,仅用作标记(serializable、cloneable)
    接口回调:
    先有接口的使用者(工具),后有接口的实现者(程序员)。
//定义方法
interface public People(){
	//implements继承方法
	//没有构造方法,不能创建对象
	//只能创建公开的静态常量、抽象方法
	//任何类在实现接口时,必须实现接口中的所有抽象方法,否则此类为抽象类
	//实现接口中的抽象方法时,访问修饰符必须是public
}

//接口多态
Dog myDog = new Dog(); //把狗当狗看
Animals a = myDog; //把狗当动物看
Runnable r = myDog; //把狗当会跑的东西看

  • 常用方法
  • 类与类
    • 单继承
    • extends 父类名称
    • 注意事项:
      1.子类不能使用父类的私有资源;
      2.构造方法不能继承;
      3.子类如果想更改父类的功能,可以重写(两同两小一大)
  • 类与接口
    • 多实现
    • implements 接口名1,接口名2
    • 注意事项:
      1.实现接口必须实现接口中的所有抽象方法,如果有任何一个没有实现,就必须把这个类声明成抽象子类;
      2.创建实现类对象时,一般使用实现类对象,而不是多态对象,因为其效果是一样的
  • 接口与接口
    • 多继承
    • extends 父类名1,父类名2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值