您的位置:首页 > 编程语言 > Java开发

Java面向对象小记(3)

2015-06-07 01:53 363 查看
多态性

对象的多态性
向上转型:自动完成

父类 父类对象=子类对象

class A1{
public void tell1(){
System.out.println("A1_tell1");
}
public void tell2(){
System.out.println("A1_tell2");
}
}

class B extends A1{
public void tell1(){
System.out.println("B_tell1");
}
public void tell3(){
System.out.println("B_tell2");
}
}

public class PolDemo01 {

/**
* @param args
*/

public static void main(String[] args) {
// TODO Auto-generated method stub
B b = new B();
A1 a = b; // 向上转型
a.tell1();
a.tell2();
}

}


向下转型: 强制转换完成
子类 子类对象=(子类)父类实例

class A1{
public void tell1(){
System.out.println("A1_tell1");
}
public void tell2(){
System.out.println("A1_tell2");
}
}

class B extends A1{
public void tell1(){
System.out.println("B_tell1");
}
public void tell3(){
System.out.println("B_tell2");
}
}

public class PolDemo01 {

/**
* @param args
*/

public static void main(String[] args) {
// TODO Auto-generated method stub
// 向下转型必须先发生向上转型,在发生向下转型
A1 a = new B();
B b = (B)a;
b.tell1();
b.tell2();
b.tell3();
}

}


对象多态性的使用
class A2{
public void tell1(){
System.out.println("A-tell1");
}
}

class B2 extends A2{
public void tell2(){
System.out.println("B-tell1");
}
}

class C2 extends A2{
public void tell3(){
System.out.println("C-tell1");
}
}

public class PolDemo02 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
say(new B2());
say(new C2());

}
// 对象的多态性使得代码简化,不同每个类都创建一个单独的方法
public static void say(A2 a){
a.tell1();
}

}


instanceof 关键字
class A1{
public void tell1(){
System.out.println("A1_tell1");
}
public void tell2(){
System.out.println("A1_tell2");
}
}

class B extends A1{
public void tell1(){
System.out.println("B_tell1");
}
public void tell3(){
System.out.println("B_tell2");
}
}

public class PolDemo01 {

/**
* @param args
*/

public static void main(String[] args) {
// TODO Auto-generated method stub
A1 a = new A1();
System.out.println(a instanceof A1);//判断a是不是A 的实例
System.out.println(a instanceof B);

A1 a1 = new B(); //向上转型后,A与B有了联系
System.out.println(a instanceof A1);
System.out.println(a instanceof B);
}

}


面向对象抽象类的应用

abstract class People{
private String name;
private int age;

public People(int age, String name){
this.name = name;
this.age = age;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void want();
}

class Students extends People{
private int score;
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Students(int age, String name, int score){
super(age, name);
this.score = score;
}
public void want(){
System.out.println("name:"+ this.getAge()+" "+"age:"+this.getName()
+ "score:" + this.getScore());
}

}

class Worker extends People{
private int money;

public int getMoney() {
return money;
}

public void setMoney(int money) {
this.money = money;
}
public Worker(int age, String name, int money){
super(age, name);
this.money = money;
}
public void want(){
System.out.println("name:"+ this.getAge()+" "+"age:"+this.getName()
+ "score:" + this.getMoney());
}
}

public class AbsDemo01 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Students s = new Students(10, "小明", 100);
s.want();

Worker w = new Worker(30, "大明", 1000);
w.want();

}

}


接口的应用
interface USB{
void start();
void stop();
}

class Computer{
public static void work(USB u){
u.start();
System.out.println("working");
u.stop();
}
}

class USBDisk implements USB{
public void start(){
System.out.println("USB is working");
}
public void stop(){
System.out.println("USB is stopping");
}
}

class Printer implements USB{
public void start(){
System.out.println("Printer is working");
}
public void stop(){
System.out.println("Printer is stopping");
}
}

public class InterDemo01 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Computer.work(new USBDisk());
Computer.work(new Printer());
}

}


极客网址:http://www.jikexueyuan.com/path/javaweb/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java