Java学习-多态

多态:

1、多态是方法的多态,不是属性的多态

2、父类和子类有联系,否则会出现类型转换异常ClassCastException

3、存在条件,继承关系,方法需要重写

4、父类引用指向子类对象Father f1=new Son();

不能被重写的方法:

1、static:属于类,不属于实例

2、final:常量

3、privat:私有封装

 

Pet:

public class Pet {
    public void run(){
        System.out.println("跑起来!");
    }
}

 

Cat:

public class Cat extends Pet{
    @Override
    public void run() {
        System.out.println("son");//重写父类方法,只执行子类方法
    }
    public void eat(){
        System.out.println("吃");
    }
}

 

Application:

public class Application {
    //静态方法无法被重写,只有非静态方法才可以被重写
    public static void main(String[] args) {
        //一个对象的实际类型是确定的
        //new Person();
        //new Student();

        //可以指向的引用类型不确定:父类的引用指向子类
        //Cat调用的都是自己的方法,或者继承父类的方法
        Cat cat = new Cat();
        //Pet:父类,指向子类,但不能调用子类独有的方法
        Pet cat1 = new Cat();
        Object cat2 = new Cat();

        cat1.run();//子类重写了父类的方法,则执行子类
        cat.run();
        ((Cat) cat1).eat();//父类调用子类方法 只能进行强转

    }
}

 

posted @ 2022-02-16 13:13  李泓良  阅读(17)  评论(0)    收藏  举报