多态

A:多态是继封装、继承之后,面向对象的第三大特性。

        现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。

        B:Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。

        Java中多态的代码体现在:一个子类(实现类)对象既可以赋值给这个子类(实现类)引用变量,又可以赋值给这个子类(实现类)的父类(接口)引用变量。

        如Student类可以为Person类的子类。那么一个Student对象既可以赋值给一个Student类型的引用,也可以赋值给一个Person类型的引用。

        最终多态体现为父类引用变量可以指向子类对象。

        C:多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。

        在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

    多态的定义格式:就是父类的引用变量指向子类对象

            普通类多态定义的格式

父类 变量名 = new 子类();
如:	class Fu {}
	class Zi extends Fu {}
	//类的多态使用
Fu f = new Zi();

            抽象类多态定义的格式

抽象类 变量名 = new 抽象类子类();
如:	abstract class Fu {
         public abstract void method();
	     }
class Zi extends Fu {
public void method(){
 System.out.println(“重写父类抽象方法”);
}
}
//类的多态使用
Fu fu= new Zi();

            接口多态定义的格式

接口 变量名 = new 接口实现类();
如: interface Fu {
		     public abstract void method();
}
class Zi implements Fu {
		     public void method(){
              System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();	

 多态案例:

            已知动物类:

            动物都有吃饭和睡觉方法

            人类是动物的一种:

            人不但吃饭,睡觉,而且会学习和工作

    static与final修饰符 

            static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个这个类的某个对象。

            static修饰的成员被多个对象共享。

           static修饰的成员属于类,但是会影响每一个对象。

           被static修饰的成员又叫类成员,不叫对象的成员。

           如下例中国籍变量,所有中国人国籍均应该为中国,不应各自定义各自的国籍,所以可以将国籍定义为static,属于类,被多个对象共享。

            被static修饰的成员可以并且建议通过类名直接访问。也可以通过某个对象访到属于类的静态成员,原因即多个对象均属于一个类,共享使用同一个静态成员。

            格式:

            类名.静态成员变量名

            类名.静态成员方法名(参数)

            对象名.静态成员变量名         ------不建议,出现警告

            对象名.静态成员方法名(参数)   ------不建议,出现警告

    final关键字的使用      

            final是最终修饰符,可以修饰类、成员方法、变量。

            final修饰的类无法被继承。

            final修饰的方法无法被重写。

            final修饰的变量无法被再次赋值

                 如:

            final int a = 10;  //则a无法被2次赋值

           我们通常使用public static final来定义静态常量(如接口中的固定修饰符)

            引用类型的变量用final修饰,是指其所引用的对象不能改变,即该变量引用的地址值不能改变。

    类的全名访问

            在访问类时,为了能够找到该类,使用类时,应该使用包含包名的类全名。

            如:字符串String在使用时,可以按照如下方式访问:

           java.lang.String s = “一个字符串”; 

           等价于 String s = “一个字符串”;

     四种权限访问修饰符

            在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能力:



 publicprotected空的(default)private
同一类中
同一包中(子类与无关类) 
不同包的子类  
不同包中的无关类   

    注意:如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值