【Java】一例贯通Java基础语法
生活随笔
收集整理的這篇文章主要介紹了
【Java】一例贯通Java基础语法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
//不含構(gòu)造器,不能new對象
public interface LivingBeings {void breathe();default void live() {System.out.println("我還活著哈哈哈");}}
//抽象類不能new對象
public abstract class Animal implements LivingBeings {@Overridepublic void breathe() {System.out.println("我能呼吸嘎嘎嘎");}public abstract void fly();}
public class Bird extends Animal {private String name;public Bird() {System.out.println("Bird的無參數(shù)構(gòu)造器...");}//這里是構(gòu)造器的Overload,不同于Overridepublic Bird(String var) {this();this.name = var;System.out.println("Bird的有參數(shù)構(gòu)造器...");}public String getName() {return this.name;}//由于鳥名是定義后固定不可改變的,所以不能寫setter@Overridepublic void fly() {flyBefore();System.out.println("我能飛啊小老弟");}@Overridepublic String toString() {return "我算是個什么鳥呢?——當(dāng)然是帥氣的" + name;}@Overridepublic boolean equals(Object object) {return object instanceof Bird && this.getName().equals(((Bird)object).getName());}private void flyBefore() {System.out.println("等我長好翅膀就可以飛啦...");}}
//用了final的類不能被繼承
public final class Ostrich extends Bird {//子類可以通過super調(diào)用父類構(gòu)造器但是不能直接繼承父類構(gòu)造器//子類可以得到的是父類的全部非private的成員變量、方法和內(nèi)部類(包括內(nèi)部接口)public Ostrich() {super("Ostrich");System.out.println("我是大鴕鳥啦啦啦~~~~~·");System.out.println("這才是俺的構(gòu)造器哇哇哇233333");}//Java的Annotation,可以加強編譯檢查,不完成Override就不通過編譯@Overridepublic void fly() {System.out.println("我沒得辦法飛,嚶嚶嚶...");}public void run() {System.out.println("然鵝我能跑啊,想不到吧嘿嘿嘿***");}}
public class FinallyTest {//final+static——全局類常量private static final String starSplit = "************";public static void main(String[] args) { LivingBeings being = new Ostrich();being.live();being.breathe();//下面兩個語句編譯錯誤//being.fly();//being.run();/********************/System.out.println(starSplit);Bird bird = new Ostrich();bird.live();bird.breathe();bird.fly();//下面語句編譯錯誤//bird.run();/*******************/System.out.println(starSplit);Ostrich ostrich = new Ostrich();ostrich.live();ostrich.breathe();ostrich.fly();ostrich.run();System.out.println(ostrich);//name畢竟是private的,不能被子類直接訪問,所以下面語句編譯錯誤//System.out.println(ostrich.name);//但是由于有g(shù)etter,所以子類可以通過getter訪問name變量的“備份”System.out.println(ostrich.getName());//子類不能訪問調(diào)用父類private方法,下面語句編譯錯誤//ostrich.flyBefore();/*******************/System.out.println(starSplit);System.out.println(ostrich instanceof Bird);System.out.println(ostrich instanceof Animal);System.out.println(ostrich instanceof LivingBeings);/*******************/System.out.println(starSplit);System.out.println(bird instanceof Ostrich);System.out.println(bird instanceof Animal);System.out.println(bird instanceof LivingBeings);/*******************/System.out.println(starSplit);Bird bird2 = new Bird("布谷");System.out.println(bird2 instanceof Ostrich);System.out.println(bird2 instanceof Animal);System.out.println(bird2 instanceof LivingBeings);/*******************/System.out.println(starSplit);//重寫的equals方法必須滿足以下性質(zhì)——相當(dāng)于等價關(guān)系//滿足自反性System.out.println(bird2.equals(bird2));//滿足對稱性System.out.println(starSplit);Bird bird3 = new Bird("麻雀");System.out.println(bird2.equals(bird3));System.out.println(bird3.equals(bird2));//滿足對稱性System.out.println(starSplit);Bird bird4 = new Bird("大雁");System.out.println(bird2.equals(bird3));System.out.println(bird3.equals(bird4));System.out.println(bird2.equals(bird4));//滿足一致性,用三次一致來驗證System.out.println(starSplit);System.out.println(bird2.equals(bird3));System.out.println(bird2.equals(bird3));System.out.println(bird2.equals(bird3));//非null量與null作比必須滿足返回falseSystem.out.println(starSplit);System.out.println(bird2.equals(null));//用Ostrich測一直是trueSystem.out.println(starSplit);Ostrich ostrich2 = new Ostrich();System.out.println(ostrich.equals(ostrich2));}}
運行結(jié)果
Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... 我是大鴕鳥啦啦啦~~~~~· 這才是俺的構(gòu)造器哇哇哇233333 我還活著哈哈哈 我能呼吸嘎嘎嘎 ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... 我是大鴕鳥啦啦啦~~~~~· 這才是俺的構(gòu)造器哇哇哇233333 我還活著哈哈哈 我能呼吸嘎嘎嘎 我沒得辦法飛,嚶嚶嚶... ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... 我是大鴕鳥啦啦啦~~~~~· 這才是俺的構(gòu)造器哇哇哇233333 我還活著哈哈哈 我能呼吸嘎嘎嘎 我沒得辦法飛,嚶嚶嚶... 然鵝我能跑啊,想不到吧嘿嘿嘿*** 我算是個什么鳥呢?——當(dāng)然是帥氣的Ostrich Ostrich ************ true true true ************ true true true ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... false true true ************ true ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... false false ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... false false false ************ false false false ************ false ************ Bird的無參數(shù)構(gòu)造器... Bird的有參數(shù)構(gòu)造器... 我是大鴕鳥啦啦啦~~~~~· 這才是俺的構(gòu)造器哇哇哇233333 true總結(jié)
以上是生活随笔為你收集整理的【Java】一例贯通Java基础语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 创建一个垃圾篓防误删及其误删
- 下一篇: 【Python】Python中的类型转换