首页 > 代码库 > 星期三的收获
星期三的收获
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()); } }
输出结果
星期三的收获