Java面向对象编程_抽象类&接口&包装类&泛型
发布日期:2021-05-14 11:31:57 浏览次数:16 分类:精选文章

本文共 9644 字,大约阅读时间需要 32 分钟。

���������������������Java������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������

####Abstract Class���������������

������������Java������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������

abstract class AbstractClass {
abstract public void print();
}
class ConcreteClass extends AbstractClass {
@Override
public void print() {
System.out.println("���������������������������");
}
}
class MainClass {
public static void main(String args[]) {
AbstractClass instance = new ConcreteClass();
instance.print();
}
}

������������������������������������������abstract������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

####Template Method������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���Action���������������

interface Action {
static final int EAT = 1;
static final int REST = 5;
static final int WORK = 10;
void actionSwitch(int code);
abstract public void eat();
abstract public void rest();
abstract public void work();
}
class Robot implements Action {
@Override
public void eat() {}
@Override
public void rest() {}
@Override
public void work() {
System.out.println("������������������������");
}
}
class Person implements Action {
@Override
public void eat() {
System.out.println("������������������");
}
//...
}

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������Wrapper Classes���

������������Java������������������������������������������������������������������������������int���double���������������������������������������������������������������������������������������������������������������������������������������������������

���Number������������

public class Number {
private final int num;
public Number(int num) {
this.num = num;
}
public int intValue() {
return this.num;
}
//...
public static Number.valueOf(int num) {
return new Number(num);
}
}

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������Interfaces���

####Interface������������������

��������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������������������������� Concrete Implementation���������������������������������������������������������������

��� Welcome���������������

interface Welcome {
abstract void welcome();
}
class MessageService implements Welcome {
@Override
public void welcome() {
System.out.println("������������������������");
}
}

������������������������������������Java EE��� Swing������������������������������������������������������������������������������������������������������������������������������

####Interfac e������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������Service���������������Channel���Database���������

interface Channel {
abstract boolean channelConnect();
}
interface Database {
abstract boolean databaseConnect();
}
interface Service extends Channel, Database {
abstract String service();
}

���������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������

####Factory Design Pattern������������������������

������������������������������������������������Factory���������������������������������������������������������������������������������������������������������������������������������������������������������

���IEat���������������

interface IEat {
void eat();
}
class Bread implements IEat {
@Override
public void eat() {
System.out.println("���������");
}
}
class Milk implements IEat {
@Override
public void eat() {
System.out.println("���������");
}
}
class Factory {
public static IEat factoryGet(String food) {
if (food.equals("bread")) {
return new Bread();
} else if (food.equals("milk")) {
return new Milk();
}
return null;
}
}

������������������������������������������������������������������������������������������������������������

####Proxy Design Pattern������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���IEat���������������

interface IEat {
void get();
}
class EatReal implements IEat {
@Override
public void get() {
System.out.println("[������������]���������������");
}
}
class EatProxy implements IEat {
private IEat eat;
public EatProxy(IEat eat) {
this.eat = eat;
}
@Override
public void get() {
prepare();
eat.get();
clean();
}
public void prepare() {
System.out.println("[������������]���������������");
}
public void clean() {
System.out.println("[������������]���������������");
}
}

���������������������������������������������������������������������������������������������������������������������������������

v��d��as���������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

interface IEat {
void eat();
}
class Milk implements IEat {
@Override
public void eat() {
System.out.println("���������");
}
}
class Bread implements IEat {
@Override
public void eat() {
System.out.println("���������");
}
}
class EatProxy implements IEat {
private IEat eat;
public EatProxy(IEat eat) {
this.eat = eat;
}
@Override
public void eat() {
prepare();
this.eat.eat();
end();
}
public void prepare() {
System.out.println("������������");
}
public void end() {
System.out.println("������������");
}
}
class Factory {
private Factory() {
}
public static IEat factory(String food) {
switch (food) {
case "milk":
return new EatProxy(new Milk());
case "bread":
return new EatProxy(new Bread());
default:
return null;
}
}
}

������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Generics������������

####Generics ������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Generics ������������������������������������������������������������������������������

���Point������������

class Point
{
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return this.value;
}
}
class IntegerPoint extends Point
{
public static void main(String[] args) {
IntegerPoint point = new IntegerPoint();
point.setValue(20);
System.out.println(point.getValue()); // 20
point.setValue("������120���");
// compile error������������String���������int
}
}

���������������������������������������������������������������������������������������������ClassCastException������������������������������������������������

####Generics ���������������

���������������������Generics���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������

������������Java���������������������������������������������������������������������������������������������������������������������������������������������������������Java������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:Java面向对象编程_包&访问控制权限&构造方法私有化&枚举
下一篇:Java面向对象编程_方法&类与对象&数组&String类

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月15日 23时08分00秒