java 学习 私有类实现接口 ,一个类继承来的方法和接口实现方法重复第八天

jjava的privete 修饰的方法或者类 都只能在本类或者外部类中访问  

在内部私有类基础上返回 私有类实现对象   代码

interface Animal   //Animal接口 
{
 void eat();
}
class zoo  
{
 Animal GetAnimal()
 {
  return new Animal()
  {
   public void eat()
   {
    System.out.println("animal eat");
   } 
  }; 
 
}
Tiger GetTiger ()
{
 return  new Tiger();
}

private  class Tiger implements Animal   //私有类 实现了 Animal接口
{
 public   void   eat()
 {
  System.out.println("eating");
}
}
}
class Test
{
 public static void main(String []args)
 {
  zoo z=new zoo();  //先定义外部类对象
   Animal a=z.GetTiger();  //我们不能通过zoo对象定义Tiger对象因为 Tiger类是私有的
   a.eat(); 
}
}

 

 

2. 

 

既是派生类 又是接口实现类  如果有函数重复 可以通过内部类解决 代码如下

interface Machine   //Machine接口 
{
 void run();
}
class person  //超类
{
 void run()
 {
  System.out.println("run");
 }
}

class Robot extends person   //从person派生出来
{
 private class RobotHeart  implements Machine   //为了更好隐藏将内部实现类声明为私有
 {
  public  void run()  //接口的实现函数
  {
   System.out.println("RobotHeart Run");
  }
 }
 Machine GetMachine()  //返回 Machine 接口的实现
 {
  return  new RobotHeart();
 }
  
}

class Test
{
 public static void main(String []args)
 {
  Robot r=new Robot();  //实例化一个外部类
  Machine m=r.GetMachine(); //返回一个Machine对象
  r.run();
  m.run();
  
  
 }
 
 
 
 
}

 

 

 

 

 

 

 

 

 

 

 

 

时间: 2024-10-28 02:07:39

java 学习 私有类实现接口 ,一个类继承来的方法和接口实现方法重复第八天的相关文章

c++-C++可以在类中定义一个类吗?

问题描述 C++可以在类中定义一个类吗? 比如像下面这样: 解决方案 完全可以注意:内部类可以访问外部类的私有成员,外部类不能访问内部类的私有成员! 解决方案二: 可以呀,就像在结构体里申明结构体一样,不过好像通常不这样用. 解决方案三: 嵌套类的概念,相当于一个内部类. 解决方案四: 可以的,不过看起来比较别扭 解决方案五: 可以,嵌套类有以下性质: 一.**可见性**嵌套类对于外围类: 嵌套类仅仅是声明在外围类内部的类型,而不是外围类的成员 外围类不具备嵌套类所定义的成员 对于外围类来说,嵌

ejb方法调用-EJB3.0中怎么一个类调用另外一个类的方法

问题描述 EJB3.0中怎么一个类调用另外一个类的方法 我做得的是struts+ejb3.0,在EJB中我想用BIZ调用dao,是直接New还是有别的方法...求大神指教..... 这是BIZ的方法 public List queryPet(String pelName,String pelZr,String pelType ,String px) { System.out.println("aaaaaaaaaaaaaaaaaaaa"); IDao dao=new IDaoImpl()

uml-C++UML图怎么表示一个类是另外一个类的友元类

问题描述 C++UML图怎么表示一个类是另外一个类的友元类 C++UML图怎么表示一个类是另外一个类的友元类,求大神帮助 解决方案 类成员函数声明为另外一个类的友元 解决方案二: UML中貌似没有友元这个概念 解决方案三: http://request.uml.com.cn/index.asp 看看里面怎么说的...

一个类.list.addAll(另一个类.list)与一个类.list=另一类.list 的区别

问题描述 LinkedList<Zhang> xinList=new LinkedList<Zhang>(); for (int i=cong;i<list.size();i++){ xinList.add( list.get(i));} list.removeAll(xinList); Lin lin = new Lin();// lin.list.addAll(xinList); lin.list =xinList; return lin;就是注释掉的和下一句的区别 怎么

class-一个类可以只能继承一个抽象类,为什么接口可以多继承接口

问题描述 一个类可以只能继承一个抽象类,为什么接口可以多继承接口 一个类可以只能继承一个抽象类,为什么接口可以多继承接口.谢谢大神帮我回答 解决方案 接口抽象类继承接口与抽象类的继承黑马程序员--继承.抽象类.接口 解决方案二: 这是java中继承父类和实现接口的差别,是参照与C的继承关系规定的. 解决方案三: 类也可以继承多个类啊,只是不说抽象类而已! 解决方案四: 注意:类对接口的implements称作实现 不能叫做继承 . 当然 接口可以多继承接口 因为接口只定义行为 并不包含类别的含义

Java学习笔记之对象与类(1/3)

一.类 类(class)是构造对象的蓝图或模板.由类构造(construct)对象的过程就是创建类的实例(instance)的过程. 封装(encapsulation)是与类有关的一个重要概念.形式上来说,封装是把数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.对象的数据称为实例域(instance field),操作数据的过程称为方法(method). 继承(inheritance)使得Java中的一个类可以通过拓展另一个类而来.实际上,Java中所有的类都是继承了一个最原始的

java 中如何实现多个线程共享一个类

问题描述 java 中如何实现多个线程共享一个类 预想: 一个类 ClassA 中的一个类变量 public static int data = 100; 我起一个main方法 调用 ClassA.data = 200; 再起一个main方法 读取ClassA.data 获取的值就是200? 任意线程修改单例的ClassA 其他线程读取都是最新的 如何做到? 解决方案 java如何实现多个线程并发运行 解决方案二: 启动2个main,不是线程,是进程. 解决方案三: 用final修饰 publi

JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类

JAVA之旅(九)--Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类 天天被一些琐事骚扰,学习还得继续 一.Object类 Object是什么呢?我们可以翻阅JAVA API文档看他的介绍 上面介绍说,object是类层次结构的根类,也就是超类 Object:是所有对象的直接后者间继承关系,传说中的老祖宗,你父亲还有父亲,你父亲的父亲还有父亲是爷爷,这是继承关系,但是你的祖宗却只有一位,该类中定义的肯定是所有对象都具备的功能

Android反射出一个类中的其他类对象并调用其对应方法

MainActivity如下: package cn.testreflect; import java.lang.reflect.Field; import java.lang.reflect.Method; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 在一个类中有另外一个类的对象 * 比如此处的Worker类中有一个Student类的对象: * private Student mStudent;