java(4)继承,重载,多态

来源:互联网 发布:中文域名可以备案吗 编辑:程序博客网 时间:2024/06/05 08:47

继承

/* * 说明继承的必要性 *  *  * */package jerryzaki;public class Demo1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        Stu s1=new Stu(12,"zhanfsan");        s1.printName();    }}//将学生共有属性提取出来,做一个父类 class Stu{    public int age;    public String name;    public float fee;    public Stu() {    }    public Stu(int age,String name) {        this.age=age;        this.name=name;    }    public void printName() {        System.out.println("名字"+this.name);    }}//小学生类 class Pupil extends Stu{    public Pupil(int age,String name) {    }    //教学收费    public void pay(float fee) {        this.fee=fee;    }}   

重载

方法的重载就是在同一个类中存在多个同名方法,参数的个数 类型 顺序不同可以构成重载。

/* * 函数重载 * */package jerryzaki;import javax.swing.*;public class Demo2 extends JFrame{    public static void main(String[] args) {        // TODO Auto-generated method stub        //Demo2 demo2=new Demo2();        abc a=new abc();        a.getMax(2.1,3);    }    /*public Demo2() {         this.setVisible(true);        this.setSize(200,200);    }*/}//比较大下//函数的重载//如果只是返回类型不一样,不能构成重载class abc{    public int getMax(int n,int m) {    if(n>m) {        return n;    }else        return m;    }    public double getMax(double n,double m) {        if(n>m) {            return n;        }else            return m;        }//只是权限修饰符不一样,也不构成重载}

多态

一个引用在不通情况下的多种状态
哇 感觉多态好难理解啊

/* * 演示多态:一个引用在不通情况下的多种状态 * */package jerryzaki;public class Demo4 {    public static void main(String[] args) {        // TODO Auto-generated method stub        //覆盖        /*Cat cat=new Cat();        cat.cry();        Dog dog=new Dog();        dog.cry();        Animal an=new Cat();        an.cry();   //多态        an=new Dog();//父类对象an可以在不通情况下调用不通的方法        an.cry();//最简单的多态*/        master one=new master();//父类对象方法 参数可以根据不同情况改变        one.feed(new Dog(),new bone());//对象是可以作为参数使用的        one.feed(new Cat(),new fish());    }}//动物类class Animal{     String name;    int age;    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 void cry(){        System.out.println("dongwujiao");    }    public void eat() {        System.out.println("不知道吃什么");    }}class Cat extends Animal{    public void cry(){        System.out.println("goujiao");    }    public void eat() {        System.out.println("猫吃鱼");    }}class Dog extends Animal{        public void cry(){            System.out.println("maojiao");        }        public void eat() {            System.out.println("狗吃骨头");        }}class food{//food 有两个子类fish bone    String name;    public void showName() {    }}class fish extends food{    public void showName() {        System.out.println("给一条鱼鱼");    }}class bone extends food{    public void showName() {        System.out.println("给一根骨头");    }}class master{//主人类,方法喂食    //给动物喂食,使用多态方法    public void feed(Animal an,food f) {        an.eat();        f.showName();    }   }