java 多态知识点

class day6_26_1{
    public static void mian(String[] args){
        Fu2 fu2 = new Zi2();//父类引用子类对象
        fu2.print();//fu
    }
}
class Fu2{
    public void print(){
        System.out.println("fu");
    }
}
class Zi2 extends Fu2{//有继承关系
    public void print(){
        System.out.println("zi");
    }
}

/*
    多态
    什么是多态?
        多种状态
        是指一个对象在不同的时刻,表现出来的不同形态
        比如说:一个水滴,分为液态-气态-固态
    多态的前提条件?
        1,要有继承关系
        2,要有方法重写
        3,要有父类引用指向子类对象
     成员变量
     口诀:编译看左边,运行看左边
     成员方法
     口诀:编译看左边,运行看右边
   静态方法(static)
   口决:编译看左边,运行看左边
class Fu2{ public void print(){ } } class Zi2 extends Fu2{//有继承关系 public void print(){//有方法重写 } } class Demo{ public static void mian(String[] args){ Fu2 fu2 = new Zi2();//父类引用子类对象 } } */ /* 多态间子父类之间成员变量的关系? 父类中有一个成员变量,子类中有一个成员变量 如果两个变量的名字不同的话: class Fu2{ int i = 1; } class Zi2 extends Fu2{//有继承关系 int j = 2; } class day6_25_2{ public static void mian(String[] args){ Fu2 fu2 = new Zi2();//父类引用子类对象 System.out.println(fu2.i); System.out.println(fu2.j);//编译报错 } } 通过结果分析,父类引用中不能使用子类的成员变量 如果两个变量的名字不同的话: class Fu2{ int i = 1; } class Zi2 extends Fu2{//有继承关系 int i = 2; } class day6_25_2{ public static void mian(String[] args){ Fu2 fu2 = new Zi2();//父类引用子类对象 System.out.println(fu2.i); } } 通过结果分析,父类引用只能使用自身带的成员变量,不能使用子类中的成员变量 多态间子父类之间成员方法的关系? 父类中有一个成员方法,子类中有一个成员方法 class Fu2{ public void printfu(){ System.out.println("fu"); } } class Zi2 extends Fu2{//有继承关系 public void printzi(){ System.out.println("zi"); } } class day6_25_2{ public static void mian(String[] args){ Fu2 fu2 = new Zi2();//父类引用子类对象 fu2.printfu();//fu fu2.printzi();//编译报错 } } 通过结果分析,父类中不能使用子类特有的方法 如果两个方法的名字相同的话: class day6_26_1{ public static void mian(String[] args){ Fu2 fu2 = new Zi2();//父类引用子类对象 fu2.print();//zi } } class Fu2{ public void print(){ System.out.println("fu"); } } class Zi2 extends Fu2{//有继承关系 public void print(){ System.out.println("zi"); } } 通过结果分析,父类引用可以使用子类中重写父类的方法 */
posted @ 2024-06-26 13:11  公子Learningcarer  阅读(1)  评论(0编辑  收藏  举报