继承、接口的练习

/*
需求:继承、接口的练习
首先定义两个接口 A、B  和  一个抽象类C
然后让类D来实现接口A和B   继承抽象类C
*/
class InterfaceTest
{
public static void main(String[] args) 
{
D d=new D();//创建一个D类的对象,这个对象既可以调用本类的变量和方法,
           //又可以调用父类中的非私有变量和非私有方法
d.speak();
d.show1();
d.show2();
d.show3();//调用的是父类C中的final类型的show3方法
}
}
interface A
{
public static  final int NUM=5;//定义的是一个全局常量   变量类型静态的和final类型的
public abstract void speak();//在接口A中定义一个全局的抽象方法speak,这个方法在实现接口的类中必须被覆盖掉
public abstract void show1();//在接口A中定义一个全局的抽象方法speak1,这个方法在实现接口的类中必须被覆盖掉
}
interface B
{
public abstract void speak();
public abstract void show2();
}
//定义一个抽象类C
abstract class C
{
//定义的是一个私有化的成员变量name,即封装name,目的是让name这个数据可控
private String  name;
//类C中的构造方法
C(String name)
{
//super();//继承的是Object中的默认构造方法
this.name=name;
}
//通过getName方法来获取私有成员变量name的内容,也就是通过一个方法来访问私有成员变量
public String getName()
{
return name;
}
//在抽象类C中定义一个抽象方法speak,这个方法必须在C的子类中被覆盖
abstract void speak();
//定义一个final类型的方法show3,这个方法在C的子类中一定不能被覆盖,也就是被final修饰的方法中的方法体内容一定不能被换掉
public final void show3()
{
System.out.println("这是抽象类C里的show3方法");
}
}
//定义一个D类,继承C类,可以实现A接口和B接口
//D类必须覆盖掉A、B、C中的所有抽象方法,否则,D类也是一个抽象类了
class  D extends  C  implements A,B
{
D()
{
super("王五");
}
//定义一个speak方法,这个方法既可以覆盖接口A中的speak方法,又可以覆盖接口B中的speak,
//覆盖两个接口中的哪一个都行,因为接口中的方法都是抽象方法,抽象方法是没有方法体的,
//但是一个方法覆盖父类中的方法必须满足和父类方法的返回值类型、方法名、参数信息一模一样、
public void speak()
{
System.out.println("实现的是接口中的speak方法");
}
//定义一个实现接口A中的show1方法功能的方法,也就是覆盖接口As中的show1方法
public void show1()
{
System.out.println("实现的是接口A中的show1方法");

//定义一个实现接口B中的show2方法功能的方法,也就是覆盖接口As中的show2方法
public void show2()
{
System.out.println("实现的是接口B中的show2方法");
//接口中定义的变量或者常量在D类中也可以调用
System.out.println("NUM="+NUM);
//通过调用父类中的getName方法来获取父类中的私有变量name.
System.out.println("name="+super.getName());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值