5月7号 周四 面向对象高级(上)

1.java只支持单继承,即一个子类只能继承一个父类;但允许多层继承;
子类可以直接访问父类中的非私有的属性和方法,而私有属性和方法只能间接访问,set和get方法;
子类对象实例化的时候,默认先调用父类中的无参构造方法;然后再执行自身的构造方法;
子类覆写父类的方法时,被覆写的方法不能比父类拥有更严格的访问权限;子类调用的永远是覆写后的方法
super关键字:子类对象实例化时,在子类的构造方法中,默认隐含了一个super()的代码,调用父类中的构造方法。可以通过super(参数)调用父类中指定的构造方法,默认情况下调用的是无参构造方法;通过super.方法()可以调用父类中被覆写的方法
this与super的区别:this调用本类中的方法和属性,super用于子类调用父类中的方法和属性
2.final关键字
final标记的类不能被继承
final标记的方法不能被子类覆写
final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次(最好用大写表示)
public static final
抽象类:包含一个抽象方法的类(abstract class ),抽象方法是一个只有声明没有实现的方法,用abstract声明
abstract class不能被直接实例化,必须有子类,子类如果不是抽象类,必须覆写父类中所有的抽象方法
抽象类可以包含构造方法,不能用final声明,因为抽象类必须要有子类
3.interface:抽象方法和常量的集合
如果抽象类中全是抽象方法,则用接口表示,接口中还包括全局变量,变量默认是public static final,抽象方法也可以省略abstract
接口中的访问权限永远是public,接口必须通过子类实现,一个类可以实现多个接口,interface A;interface B;class x implements A,B;
如果一个类既要继承抽象类又要实现接口:abstract class C ;class x extends C implements A,B;
一个接口可以同时继承多个接口:interface C extends A,B;但是类不可以同时继承多个类
如果抽象方法同名,则在子类中只需要实现一次即可
4.多态性
方法的多态性:重载
对象的多态性:是对象继承应用上的一种扩展,必须要有继承关系
向下转型:A a = new B();B b = null; b = (B)a;对
A a = new A();B b = null; b = (B)a;错,因为A不知道B
对象多态性最核心的部分就是方法的覆写与继承的关系,即使子类向父类转型,也是调用被子类覆写过的方法
//B和C都是A的子类
public static void print(A a)
 {
  a.fun2() ;
  //一个对象是否是某一个类的实例的判断
  if(a instanceof B)
  {
   B b = (B)a ;
   b.fun3() ;
  }
  if(a instanceof C)
  {
   C c = (C)a ;
   c.fun4() ;
  }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值