java 多态

xiaoxiao2021-02-28  96

interface Student  //定义接口 interface { void sleep();//方法 } class Me implements Student  //定义ME类并实现Student接口用implements { public void sleep() { System.out.println("1111"); } } class Dog implements Student { public void sleep() { System.out.println("papappaap"); } } class Test002 { public static void main(String[] args) { Student a = new Me(); //创建ME对象,使用Student类型的变量a引用 Student b = new Dog(); studentSleep(a);  //调用方法,把变量a作为参数传入 studentSleep(b); } public static void studentSleep(Student a)  //定义静态的方法,接受一个Student类参数 { a.sleep(); }

}

可以运行;

分析:

1.定义接口Student 

{

sleep()

}

2、子类实现接口 implements

{

public void sleep() // 接口中方法都是public void 修饰

}

3.多态

父类类型的变量来引用一个子类类型的对象

父类 :Student  变量:a

子类对象: ME()

4 方法

studentSleep(a)

public stat void StudentSleep(Student a)

a.Sleep()

这个就一个方法sleep()

下面一个就不知道那么出错了。  。。现在又可以运行了代码如下,有点不规范简单了点

interface Student { void sleep(); void learn();//多了一个learn方法 } class Me implements Student { public void sleep() { System.out.println("1111"); } public void learn() { System.out.println("java"); } }  class Dog implements Student { public void sleep() { System.out.println("papappaap"); } public void learn()    //Dog 不行抽象类,必须实现接口的所有方法。我尝试把Dog抽象化,但是抽象类不能实例化。所有就实现接了所有方法 { } } class Test002 { public static void main(String[] args) { Student a = new Me(); Student b = new Dog(); studentSleep(a); studentSleep(b); studentLearn(a); } public static void studentSleep(Student a) { a.sleep(); } public static void studentLearn(Student a) { a.learn(); } }    

多态我难懂的

父类类型的一个变量作为子类对象的引用

Student  a = new ME();

实现方法中

public static void studentSleep(父类   参数)

这个(父类 参数)我想很久以前一直以为方法()只能填int String。。。类型。翻书看看方法的构造

修饰符  返回值类型 方法名字 (参数类型  参数1,参数2....)

{

执行语句

return   返回值;(返回类型void不想要return)返回值类型要一致

}

参数类型:用于限定方法时传入参数的类型

上代码中 参数类型是Student

有点乱了思路。。。

转载请注明原文地址: https://www.6miu.com/read-71645.html

最新回复(0)