继承应用

来源:互联网 发布:信号屏蔽软件下载 编辑:程序博客网 时间:2024/05/29 19:27
/*
题目:请用java中面向对象的思想用代码描述如下内容:小红(女)有爸爸和妈妈,
爸爸和妈妈分别有自己的爸爸和妈妈。。。,小红的爸爸会做工作A和B,小红的妈妈会做工作C和D。 
要求:将上面的情景用Java类来描述,要求自己抽象出接口和对象。
*/
//定义接口
interface Inf{
public void getInf();
}

class Person implements Inf{
String sex;
String name;
public Person(String name,String sex){
this.name = name;
this.sex = sex;
}
//实现接口方法
public void getInf(){
System.out.println("我是小红的" + name);
System.out.println("性别:" + sex);
System.out.println("------------------------");
System.out.println("\t");
}
}
//定义爷爷类
class YY  extends Person{
public YY(String name,String sex){
super(name,sex);
}
}

//定义奶奶类
class NN extends Person{
public NN(String name,String sex){
super(name,sex);
}
}


//定义外公类
class WG extends Person{
public WG(String name,String sex){
super(name,sex);
}
}


//定义外婆类
class WP extends Person{
public WP(String name,String sex){
super(name,sex);
}
}


//爸爸类
class BB extends YY{
public BB(String name,String sex){
super(name,sex);
}

//重写方法
public void getInf(){
System.out.println("我是小红的" + name);
System.out.println("性别:" + sex);
System.out.println("我的工作是A和B");
System.out.println("------------------------");
System.out.println("\t");
}
}

//妈妈类
class MM extends WP{
public MM(String name,String sex){
super(name,sex);
}

public void getInf(){
System.out.println("我是小红的" + name);
System.out.println("性别:" + sex);
System.out.println("我的工作是C和D");
System.out.println("------------------------");
System.out.println("\t");
}
}

class XH extends MM{
public XH(String name,String sex){
super(name,sex);
}

public void getInf(){
System.out.println("我是" + name);
System.out.println("性别:" + sex);
System.out.println("------------------------");
System.out.println("\t");
}
}

public class ObjTest{
public static void main(String[] args){

new YY("爷爷","男").getInf();
new NN("奶奶","女").getInf();
new WG("外公","男").getInf();
new WP("外婆","女").getInf();

new BB("爸爸","男").getInf();
new MM("妈妈","女").getInf();

new XH("小红","女").getInf();
}
}
0 0