美文网首页
java047接口的优点和与抽象类的区别,运动员案例

java047接口的优点和与抽象类的区别,运动员案例

作者: 牛倩贱 | 来源:发表于2018-12-12 23:16 被阅读0次

1.接口collection是java中集合的根接口,或者可以说是最顶层的父接口

2.接口的优点:

    a.类与接口的关系,实现关系,而且是多实现,一个类可以实现多个接口。  类与类之间是继承关系,java中的继承是单一继承,一个类只能有一个父类,而接口的出现打破了继承的局限性。

    b.对外提供规则和规范

    c.降低了程序的耦合性提高了开发效果,可以实现模块化开发,定义好规则,每个人实现自己的模块。

3.接口和抽象类的区别

    共性:不断地抽取,抽取出抽象的概念。

    区别:a.类与接口是实现关系,一个类可以实现多个接口,而且要把接口的抽象方法全部实现。

                类与抽象类之间是继承关系,单一继承,一个类只能有一个父类,但是java类还有一个特点就是多层继承。

        b.接口和抽象类之间成员的区别

            成员变量:

                抽象类可以有成员变量,也可以有常量

                接口只能有常量

            成员方法:

                抽象类可以有抽象方法,也可以有非抽象方法

                接口只能有抽象方法,而且方法只有默认修饰符piblic abstract 构造方法。

                抽象类有构造方法,接口没有。

4.运动员案例练习

篮球运动员和教练;乒乓球运动员和教练;篮球运动员和教练要出国访问,需要学习英语,请根据所学知识,分析哪些是类,哪些是抽象类,及哪些是接口。

分析:

    由下至上分析;不断向上抽取共性。

实现:

    由上至下,先实现共性。

使用:

    使用具体的子类。

java047接口的优点和与抽象类的区别,运动员案例

代码实现:

package 接口player;

public class PleyerTest {

public static void main(String[] args) {

//创建乒乓球运动员对象

PingPangPlayer ppp = new PingPangPlayer();

ppp.name="张继科";

ppp.age=28;

ppp.gender="男";

System.out.println("乒乓球运动员"+":"+ppp.getName()+"  "+ppp.getAge()+"岁  "+ppp.getGender());

ppp.sleep();

ppp.study();

ppp.eat();

System.out.println("---------");

//创建篮球运动员对象

BasketballPlayer bbp = new BasketballPlayer();

ppp.name="姚明";

ppp.age=45;

ppp.gender="男";

System.out.println("篮球运动员"+":"+ppp.getName()+"  "+ppp.getAge()+"岁  "+ppp.getGender());

ppp.sleep();

ppp.study();

ppp.eat();

}

}

class person{

String name;

int age;

String gender;

public person(){

}

public person(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 void eat(){

System.out.println("吃饭");

}

public void sleep(){

System.out.println("睡觉");

}

}

//学英语

interface studyEnglish{

public abstract void speak();

}

//运动员

abstract class player extends person{

public abstract void study();

}

//教练

abstract class coach extends person{

public abstract void teach();

}

//乒乓球运动员

class PingPangPlayer extends player{

@Override

public void study() {

System.out.println("学习抽球");

}

}

//篮球运动员

class BasketballPlayer extends player implements studyEnglish{

@Override

public void study() {

System.out.println("学习扣篮");

}

@Override

public void speak() {

System.out.println("说英语");

}

}

//乒乓球教练

class PingPangcoach extends coach{

@Override

public void teach() {

System.out.println("教抽球技巧");

}

}

//篮球教练

class Basketballcoach extends coach implements studyEnglish{

@Override

public void teach() {

System.out.println("教扣篮技巧");

}

@Override

public void speak() {

System.out.println("说英语");

}

}

相关文章

网友评论

      本文标题:java047接口的优点和与抽象类的区别,运动员案例

      本文链接:https://www.haomeiwen.com/subject/udnphqtx.html