四:多态的介绍

多态就是一种事务在不同时间体现出不同的形态就叫多态。

4.1多态的前提条件
  1. 具有继承关系extends
  2. 需要存在方法的重写
  3. 必须是父类指向子类对象
4.2格式

向上继承:
格式: Fu fu = new Zi() ;
向下继承:父类想使用子类的方法则需要向下转型
格式: Zi zi = (Zi)fu;
多态中(向下转型使用不当,会出现ClassCastException异常)

4.3多态的特点
  1. 针对成员变量的访问:编译看左运行看左
  2. 针对成员方法的访问:编译看左运行看右
  3. 如果成员方法是静态static 方法:编译看左运行看左
  4. 构造方法:需要先初始化父类的构造方法然后再初始化子类。分层初始化
4.4 多态的好处
  1. 提高代码的复用(由继承保证)
  2. 提高了代码的扩展性(由多态保证)
4.5 多态中的关键字 final
  1. 修饰变量:变量被fianl修饰后,如果一经赋值则不能更改
  2. 修饰方法:该方法不能被重写
  3. 修饰类:该类不能被继承(该类对象的地址值不会改变)

 class People{
     private String name;
     private int age;
     private String gender;
     final String nationality ="中国";
     public People(){}

     public People(String name, int age, String gender) {
         this.name = name;
         this.age = age;
         this.gender = gender;
     }

     public String getName() {
         return name;
     }

     public void setName(String name) {
         this.name = name;
     }

     public int getAge() {
         return age;
     }

     public void setAge(int age) {
         this.age = age;
     }

     public String getGender() {
         return gender;
     }

     public void setGender(String gender) {
         this.gender = gender;
     }

     //特有的方法
     public static void eat(){}

     public void sleep(){}

     public final void study(){
         System.out.println("学习");
     }
 }
 class student extends People{
     public student() {}

     public student(String name, int age, String gender) {
             super(name, age, gender);
     }

     @Override
     public void sleep() {
         System.out.println("这个是子类的睡觉");
     }
     public void goToSchool(){
         System.out.println(this.getName()+getAge()+"岁"+getGender()+super.nationality+"去上学");
     }
 }
 //测试类
public class finalDemo {
    public static void main(String[] args) {
//        通过有参构造进行数据初始化,父类指向子类对象。
//        向上转型
        People p  = new student("学生" ,35 , "女");
        p.sleep();
//        向下转型访问子类特有的方法
        student s= (student)p;
        s.goToSchool();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值