Java 继承和多态

继承

继承是两个类之间的一种关系(从属关系),引入继承可以提高代码的复用性,缩短软件开发周期

语法:[修饰符] class B extends A (B为子类,A为父类(超类),extends:继承或扩展)

注:

1.一个类只能有一个父类(单重继承),若未指定父类,则父类是Object

2.子类继承父类的非private成员变量及成员方法,也可以增加自己的成员变量和成员方法

3.用子类的构造方法构造对象时,默认先调用父类的无参的构造方法

4.子类重定义父类成员:定义同名变量会隐藏父类变量,定义同名方法会覆盖父类方法

5.最终类(final修饰)不能派生子类,最终方法(final修饰)不能被子类改写

6.假设B是A的子类,则:

  B b=new B( );b instanceof A=true;

  A  a=new B( )是可以的,new B( )会“塑形”为A

  B  b=new A( ) 和 B b=(B) new A( )均是错误的 

  A a=new B(); B b=(B)a;是正确的,第1句new B( )“塑形”为A,第2句还原为B

7.super的用法:

(1)super指代父类对象(同this类比,this指代当前对象,不能用在static方法中)

(2)当子类中有和父类中同名的属性和方法时,会隐藏或覆盖父类中的成员,如果要访问父类中           的成员,加上super前缀即可。

(3)子类构造方法调用父类构造方法用super,且要放在第一句

抽象类和抽象方法

抽象类定义:abstract class 类名{ }

抽象方法:无方法体,方法头以分号结束:abstract  方法返回类型 方法名(参数);

注:

①抽象类可有构造函数,但不能直接创建抽象类的对象

②抽象方法必须放在抽象类(或接口)中,抽象类中可以包含普通方法

   (推论:抽象类的普通子类必须实现抽象类中所有抽象方法。)

接口

定义: [public]   interface  接口名{ }

 接口继承: [public]   interface  接口名   extends       父接口列表  { }

 接口实现: [修饰符]    class      类名    implements   父接口列表{ }

注:

①接口可以实现多重继承,即一个接口或类可以有多个父接口

    一个普通类实现接口就必须实现接口中所有抽象方法

②接口访问控制符只能为public或省略

③抽象类和接口区别 :接口不能有构造方法,不能包含成员变量,可以实现多重继承

                                     接口可对不同类型对象的行为进行抽象,抽象类是对特定类型对象的抽象

修饰符

访问控制符

级别从小到大:private,默认,protected,public

含义:

同一个类

同一个包

不同包子类

不同包非子类

private

默认

protected

public

非访问控制符

abstract可以修饰类或方法,分别表示抽象类和抽象方法

final可以修饰类、方法、成员属性和局部变量,分别表示最终类、最终方法和常量

static修饰类成员,表示该成员属于类,通过类访问

注:

①abstract和final不能并列修饰同一个类

②abstract不能与private,static,final并列修饰同一个方法

多态

多态是指同一名字(功能)的方法有多种不同的实现

多态有两种实现:覆盖(Override)和重载(Overload):

1、方法的覆盖:指子类对父类方法的重新改写,子类方法的声明与父类完全相同 

2、方法的重载:指一个类内部存在同名的方法,这些方法的参数类型或个数不同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值