Java学习记录6
来源:互联网 发布:软件国产化 东方通 编辑:程序博客网 时间:2024/06/05 10:49
1.抽象类:abstract
抽象类不可创建对象;
子类继承抽象类,必须重写重写抽象方法;
子类不重写,可将类编程抽象类
普通抽象类:里面的方法不一定全是抽象的
纯抽象类:里面所有的方法都是抽象方法
public abstract class As{
//一个文件里只能有一个带public的类;最好一个类一个文件
//普通抽象类
//含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
//如果重写不了,应该声明自己为抽象。
//抽象类不能被实例化。
//抽象方法只需声明,而不需实现。
public abstract void a1(); //抽象方法
abstract void a2();
public void a3(){
System.out.println("123");
}
}
public class Ad extends As{
public void a1(){
int i=1;
i+=2;
System.out.println(i);
}
void a2(){ //父类方法有public,子类方法也要带public
System.out.println("Scorpion");
}
}
public class Test13{
public static void main(String[] args){
As s=new Ad(); // 子类变父类
s.a1();
s.a2();
s.a3(); //
}
}
2.接口:interface 方法都是public,只能声明,不能实现
接口和接口之间可以继承;
一个类可以实现多个接口;
声明接口,必须应用接口编程
public interface Af{
//接口:方法只能是public,只能声明,不能实现
//接口中只能定义抽象方法,而且这些方法默认为public的、也只能是public的
public void a1();
public void a2();
public void a3();
}
public class Ag implements Af{
public void a1(){
System.out.println("you are " + "Libra");
}
public void a2(){
System.out.println("Scorpio");
}
public void a3(){
System.out.println("Satigg");
}
}
public class Test14{
public static void main(String[] args){
Af a=new Ag();
a.a1();
a.a2();
a.a3();
}
}
3.instanceof实例判断
4.设计模式:23种,分三类:创建、行为、结构
入门模式:简单工厂方法
public interface Shou{
public void maipiao();
public void zhaoqian();
}
class Cheng implements Shou {
public void maipiao(){
System.out.println("give you an bus text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Cheng2 extends Cheng implements Sing{
public void song(){
System.out.println("我来唱歌给大家听吧!掌声响起来");
}
}
class Feng implements Shou{
public void maipiao(){
System.out.println("give you an air text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Feng implements Shou{
public void maipiao(){
System.out.println("give you an air text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Li implements Shou {
public void maipiao(){
System.out.println("give you an train text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Mill {
static Shou s(String type){
if(type.equals("airplane")){
//return new Feng();
return new Feng2();
}else if(type.equals("train")){
return new Li();
}else if(type.equals("bus")){
//return new Cheng();
return new Cheng2();
}else{
return null;
}
}
}
public interface Sing{
public void song();
}
class Test16 {
public static void main(String[] args)
{
Shou sh=Mill.s("bus");
sh.maipiao();
sh.zhaoqian();
Sing si=(Sing)sh;
si.song();
System.out.println("Hello World!");
}
}
0 0
- Java学习记录6
- java的学习记录6
- java学习记录20061008
- java学习记录
- java学习记录
- java API学习记录
- java学习记录
- JAVA 学习记录
- java学习记录
- java学习问题记录
- JAVA学习记录
- 继续记录JAVA学习
- java多线程学习记录
- 【JAVA io】学习记录
- JAVA学习记录-键盘输入
- java学习琐碎记录
- 学习java记录
- java 学习记录1
- Java5实现的线程池
- java学习记录5
- Java 序列化的高级认识
- linux系统 - linux下core文件设置
- 【UML入门教程】——总结和自我补充
- Java学习记录6
- 23种设计模式之python实现--抽象工厂
- 点发大幅度
- 数据结构之二叉树
- 如何成为一名黑客
- 黑马程序员__ ArrayList 与HashSet 去除重复函数的 区别 equals
- java中有几种方法可以实现一个线程
- 2014.4.1
- opencv 配置(vs2012)