我是靠谱客的博主 幽默小兔子,最近开发中收集的这篇文章主要介绍10 多态 | 数组内容比较 | 单态模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1,关于多态:父类或者接口类型的引用指向子类或者实现该接口的类的对象。

public class Test {
public static void main(String[] args) {
A a = new B();
a.test();
}
}
class A{
public void test(){
System.out.println("A");
}
}
class B extends A{
public void test(){
System.out.println("B");
}
}
接口

public class Test {
public static void main(String[] args) {
C c=new D();
c.test();
}
}
interface C{
public void test();
}
class D implements C{
@Override
public void test() {
System.out.println("D");
}
}



多态是编译时的行为?还是运行时的行为?或者说多态既可以是编译时的行为也可以是运行时的行为。

2,多态就是运行时的行为。方法的重写是多态,方法的重载不是多态。

package com.test;
import java.util.Random;
public class Test {
public A get() {
Random r = new Random();
int i = r.nextInt(3);
switch (i) {
case 0:
return new B();
case 1:
return new C();
case 2:
return new D();
}
return null;
}
public static void main(String[] args) {
A a = new Test().get();
a.test();
}
}
class A{
public void test(){
System.out.println("A");
}
}
class B extends A{
public void test(){
System.out.println("B");
}
}
class C extends A{
public void test(){
System.out.println("C");
}
}
class D extends A{
public void test(){
System.out.println("D");
}
}
运行时 才知道具体是那个对象。

3,数组的比较


char[] ch1 = new char[2];
ch1[0] = 'a';
ch1[1] = 'b';
char[] ch2 = new char[2];
ch2[0] = 'a';
ch2[1] = 'b';
System.out.println(ch1.equals(ch2));

输出false


char[] ch1 = new char[2];
ch1[0] = 'a';
ch1[1] = 'b';
char[] ch2 = new char[2];
ch2[0] = 'a';
ch2[1] = 'b';
String s1 = new String(ch1);
String s2 = new String(ch2);
System.out.println(s1.equals(s2));
输出true


char[] ch1 = new char[2];
ch1[0] = 'a';
ch1[1] = 'b';
char[] ch2 = new char[2];
ch2[0] = 'a';
ch2[1] = 'b';
System.out.println(Arrays.equals(ch1, ch2));

输出true

4,单态模式,特性 构造函数必须为private,返回方法必须为static

public class Test {
private static Test test = new Test();
private Test(){
}
public static Test getSingle(){
return test;
}
}
第一种写法

public class Test {
private static Test test;
private Test(){
}
public static Test getSingle(){
if(test == null){
test = new Test();
}
return test;
}
}







最后

以上就是幽默小兔子为你收集整理的10 多态 | 数组内容比较 | 单态模式的全部内容,希望文章能够帮你解决10 多态 | 数组内容比较 | 单态模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部