Java中的对象、类、抽象类、接口、继承之间的联系

时间:2021-05-20

正文:

举个例子:如果现在要想定义一个动物,那么动物肯定是一个公共的标准,而这个公共标准就可以通过接口来完成。

在动物中又分为两类:哺乳动物、卵生动物,而这个标准属于对动物的标准进一步细化,应该称为子标准,所以此种关系可以使用接口的继承来表示。

而哺乳动物可以继续划分为人、狗、猫等不同的类型,由于这些类型不表示具体的事物标准,所以可以使用抽象类进行表示。

如果要表示出工人或者学生这样的概念,则肯定是一个具体的定义,则使用类的方式。

然后每个学生或者每个工人都是具体的,那么就通过对象来表示;

由下面的图可知,所有的设计中,接口应该是最先被设计出来的,被子类所继承。

代码实例化:

package Java从入门到项目实战.抽象类与接口;//动物interface animal{ public abstract String breathe();}//哺乳动物---接口继承extend//类实现的话--implementsinterface mammals extends animal {// 全局方法// 抽象方法}//卵生动物interface Egg_laying_animals extends animal {// 全局方法// 抽象方法}//定义人类抽象类(属于哺乳动物)abstract class peopel implements mammals{}//定义非人类抽象类(输入哺乳动物)abstract class small_animal implements mammals{}//学生 属于人类中class student extends peopel{ @Override public String breathe() { return null; }}public class 接口综合 { public static void main(String[] args) {// 对象:类的实例化 student std = new student(); System.out.println(std.breathe()); }}

接口:

1.接口的基本定义:

package Java从入门到项目实战.抽象类与接口;interface IMessageF{ //在接口可以定义全局变量、抽象方法(public权限)、default方法以及static方法; //如果接口中有抽象方法,那么接口必须需要子类进行实例化 public static final String INFO = "xbhog"; //全局变量 public abstract String getInfo(); //抽象方法}class MessageIpml implements IMessageF{ @Override public String getInfo(){ //方法覆写 return "hello xbhog!"; //获取消息 }}public class 接口的基本使用 { public static void main(String[] args) { //接口的调用 实例化 IMessageF msg = new MessageIpml(); //子类实例化父类接口 System.out.println(msg.getInfo()); }}

2.子类实现多个父接口与实例转换

package Java从入门到项目实战.抽象类与接口;interface Imessage1{ public static final String INFO = "xbhog"; public abstract String getInfo();}interface IChannel{ public abstract boolean connect();}//实现多个接口,继承了两个,所以在子类中需要进行覆写父类中的抽象方法class MessageImpl1 implements Imessage1,IChannel{ @Override public String getInfo(){ if(this.connect()){ return "博客地址:mand(Action.SLEEP); }}

综合案例练习:

实现相关代码:

package Java从入门到项目实战.抽象类与接口;//定义人这个类abstract class people{ private String name; private String age; public people() {} public people(String name,String age){ this.name = name; this.age= age; } public abstract void eats(); //定义抽象方法 public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public String getAge() { return age; }}//定义运动员抽象类abstract class athletes extends people{ public athletes(){} public athletes(String name, String age){ super(name,age); }// 抽象方法 public abstract void study();}interface speakEnglish{ public abstract void speak();}//定义教练的抽象类abstract class coach extends people{ public coach(){} public coach(String name,String age){ super(name,age); } public abstract void teach();}//篮球运动员class Basketball_player extends athletes{ public Basketball_player(String name, String age){ super(name,age); } @Override public void eats() { System.out.println("篮球运动员正在吃饭...."); } @Override public void study() { System.out.println("篮球运动员正在学习......"); }}//乒乓球远动员class pingpang extends athletes implements speakEnglish{ public pingpang(String name, String age){ super(name,age); } @Override public void eats() { System.out.println("乒乓球运动员正在吃饭...."); } @Override public void study() { System.out.println("乒乓球运动员正在学习......"); } @Override public void speak() { System.out.println("乒乓球运动员练习英语口语......"); }}//乒乓球教练class pingpangCoach extends coach implements speakEnglish{ public pingpangCoach(String name, String age){ super(name,age); } @Override public void eats() { System.out.println("乒乓球教练正在吃饭....."); } @Override public void teach() { System.out.println("乒乓球教练正在授课...."); } @Override public void speak() { System.out.println("乒乓球教练练习英语口语....."); }}//篮球教练class BasketballCoach extends coach{ public BasketballCoach(String name, String age){ super(name, age); } @Override public void eats() { System.out.println("篮球教练正在吃饭"); } @Override public void teach() { System.out.println("篮球教练正在授课......"); }}public class 综合案例实现 { public static void main(String[] args) { }}

到此这篇关于Java中的对象、类、抽象类、接口、继承之间的联系的文章就介绍到这了,更多相关Java中的对象、类、抽象类、接口、继承之间的联系内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章