首页 > 代码库 > 星期三的收获

星期三的收获

1、抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。(抽象类用abstract修饰)
①抽象类的语法为:访问权限 + abstract class 类名;
②抽象类不能被实例化,但可以有构造函数;
③抽象类只能用作基类,表示一种继承关系。(抽象类的派生子类应该提供对其所有抽象方法的具体实现;如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类 )
2、抽象方法:在类中没有方法体的方法,就是抽象方法(抽象方法的语法:访问权限 abstract 返回值类型 方法名称(参数列表);)
3、抽象的作用:利用抽象的概念,能够在开发项目中创建扩展性很好的架构,优化程序。
4、object类:只提到了object类是所有类的父类,位于Java.lang包中。
5、object类中常用的方法:①toString方法:可以将任何一个对象转换成字符串返回;
②equals的方法:是用来作比较的(比较的是两个引用的虚地址)
③equals和==的比较:equals比较的是对象的虚地址,而==比较的是内存的虚地址
6、多态性:JAVA中多态的具体体现是方法重载、方法覆盖、多态参数。
7、多态的参数:方法参数具有多态性,可以提高代码的扩展性。
8、多态环境下的对象造型:①向上造型(提高程序的扩展性)
②向下造型(为了使用子类中的特有方法)
9、多态环境下对属性和方法的调用 :①多态环境下对成员方法的调用(编译看左边,运行看右边)
②多态环境下对静态成员方法的调用(编译运行都看左边)
③多态环境下对成员变量的调用(编译运行都看左边)
10、instanceof 操作符 :是用来在运行时指出对象是否是特定类的一个实例(语法形式为 对象名称 instanceof 类型)
11、运行期类型与编译期类型:①编译期类型和运行期类型相同
②当有继承关系时,可能发生编译期类型和运行期类型不同的情况,即编译期类型是父类类型,运行期类型是子类类型。
12、接口的基本语法:①Java接口是一系列方法的声明,是一些抽象的集合 (接口就是特殊的抽象类)
②接口的基本格式:修饰符 interface 接口名
③接口中没有变量,只有public static final 修饰的静态常量
13、接口继承接口的原则:①Java接口可以继承多个接口
②接口继承接口依然使用关键字extends
14接口继承与类继承的区别:①Java类的继承是单一继承,Java接口的继承是多重继承
②java类对属性没有限制,而接口是静态常量
③JAVA类的构造方法可有可无,接口没有构造方法
④JAVA类可以有具体方法,接口必须是抽象方法
15、类实现接口:接口定义的是多个类都要实现的操作,即“what to do”。类可以实现接口,从而覆盖接口中的方法,实现“how to do”

1、下午的练习

package com.chainsoft.lianxi.AM;

public class Xiaolianxi {
	 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		


     Dongwu cat1 = new Cat();
     Dongwu animal = new Dongwu();
     animal.eat();
     cat1.eat();
     cat1.drink();
     cat1.play();
     Dongwu dog1 = new Dog();
     Dongwu animal1 = new Dongwu();
     animal1.drink();
     dog1.eat();
     dog1.drink();
     dog1.play();
     Dongwu yu1 = new Yu();
     Dongwu animal2 = new Dongwu();
     animal2.play();
     yu1.eat();
     yu1.drink();
     yu1.play();
     System.out.println(cat1 instanceof Cat);
     if(cat1 instanceof Dog){
    	 System.out.println("猫的孩子为了复仇,学会了游泳,吃光所有鱼");
     }else{
    	 System.out.println("猫的孩子为了复仇,去学习游泳,结果猫的孩子没有学会游泳,吃不光所有鱼");
     }

}
}
class Dongwu
{
	   void eat()
	   {
		   System.out.print("小猫出生了,3年后,小猫可以吃东西了,");
	   }
	   void drink()
	   {
		   System.out.print("一只小狗");
	   }
	   void play()
	   {
		   System.out.print("失落的猫走出了家门,");
	   }
}
 class Cat extends Dongwu{ 
	    Cat(){
	    	 super();
	    }
	 
  	   void eat()	   {
		
		 int a = 3;
		 System.out.print("于是猫吃了"+a+"条鱼");
  	   }
  	   void drink()
  	   {
  		   System.out.print(",然后慢慢的添水喝");
 	   }
  	   void play()
  	   {
  		   System.out.println(",吃饱喝足推球玩,");
  	   }
 }
  	 class Dog extends Dongwu
  	 {
		 void eat(){
			 System.out.print("看着推球玩的小猫,跑去追猫咬,");
	  	   }
	  	   void drink(){
	  		   System.out.print("打碎了玻璃,弄乱了房间,");
	  	   }
	  	   void play(){
	  		   System.out.println("主人知道后,把狗栓了起来,把猫赶了出去。");
	  	   }
	 }
	 class Yu extends Dongwu{
		 void eat(){
	  		   System.out.print("看到小河里自由自在捕食游玩的小鱼,");
	  	   }
	  	   void drink(){
	  		   System.out.print("心生嫉妒于是下河去捕鱼,");
	  	   }
	  	   void play(){
	  		   System.out.println("结果自己淹死在了水里。");
	  	   }   
	  	   }

  输出结果技术分享

2、多接口的练习

package com.chainsoft.lianxi.AM;
 interface IConnecionManager{                     //创建一个接口1
	 void dial(String phoneNumber);
	 void huangup();
 }
  interface IDataTransfer{                      //创建一个接口2
	  void chat(String req);
	  void answer(String rep);
  }
  class Phone implements IConnecionManager,IDataTransfer{    //继承两个接口

	
	public void chat(String req) {
		System.out.println(req);               //实例化接口2方法1
		
	}

	
	public void answer(String rep) {
		                                 
		System.out.println(rep);            // 实例化接口2方法2     
	}


	public void dial(String phoneNumber) {
		
		System.out.println(phoneNumber);     //实例化接口1方法1
	}

	
	public void huangup() {
		
		System.out.println("通话完毕!");       //实例化接口1方法2
	}
	  
  }
public class Duojiekou {
      
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Phone phone = new Phone();
phone.chat("地瓜地瓜,我是土豆,收到请回答!");        //输出
phone.answer("土豆土豆,我是地瓜,已经收到!");
phone.dial("1-917-8681888");
phone.huangup();
	}
}

  输出结果技术分享

3、多态的练习

package com.chainsoft.lianxi.AM;
       class USB {
       public String name;
       public String getName()
       {
    	   return name;
       }
       public void setName(String name)
       {
    	   this.name = name;
       }
       public String load()
       {
    	   return"USB设备正在装载...";
       }
       }
     class UDisk extends USB
     {
    	 public UDisk()
    	 {
    		 setName("16G U盘");
    	 }
    	 public String load()
    	 {
    		 return "正在装载的是:"+getName();
    	 }
     }
     class Umouse extends USB
     {
    	 public Umouse()
    	 {
    		 setName("USB接口鼠标");
    	 }
    	 public String load()
    	 {
    		 return "正在装载的是:"+getName();
    	 }
     }
     class UKeyboard extends USB
     {
    	 public UKeyboard()
    	 {
    		 setName("USB接口键盘");
    	 }
    	 public String load()
    	 {
    		 return"正在装载的是:"+getName();
    	 }
     }
    public class USBTest{
    	 
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
     USB udisk = new UDisk();
     System.out.println(udisk.load());
     USB umouse = new Umouse();
     System.out.println(umouse.load());
     USB ukeyboard = new UKeyboard();
     System.out.println(ukeyboard.load());
	}

}

  输出结果技术分享

 

星期三的收获