java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法
面向對象的三大特征:繼承、封裝、多態
繼承的實現
?繼承讓我們更加容易實現類的擴展。子類是父類的擴展
使用extends實現繼承
package cn.sxt;public class Test {public static void main(String [] args) {Student s=new Student("止小兮",167,"java");s.rest();s.study();} } class Person{String name;int height;public void rest() {System.out.println("休息一會!");} } class Student extends Person{String major; //專業public void study() {System.out.println("在蒼小凌那里學習Java");}public Student(String name,int height,String major) {this.name=name;this.height=height;this.major=major;} }?
instanceof 運算符
instanceof是二元運算符,左邊是對象,右邊是類;當對象是右面類或子類所創建對象時,返回true;否則,返回false?
使用instanceof運算符進行類型判斷
package cn.sxt;public class Test {public static void main(String [] args) {Student s=new Student("止小兮",167,"java");//s.rest();//s.study();System.out.println(s instanceof Person);System.out.println(s instanceof Student);} } class Person{String name;int height;public void rest() {System.out.println("休息一會!");} } class Student extends Person{String major; //專業public void study() {System.out.println("在蒼小凌那里學習Java");}public Student(String name,int height,String major) {this.name=name;this.height=height;this.major=major;} }繼承使用要點
1.父類也稱作超類、基類等。
2.Java中只有單繼承,沒有像C++那樣的多繼承。多繼承會引起混亂,使得繼承鏈過于復雜,系統難于維護。
3.Java中類沒有多繼承,接口有多繼承。
4.子類繼承父類,可以得到父類的全部屬性和方法 (除了父類的構造方法),但不見得可以直接訪問(比如,父類私有的屬性和方法)。
5.如果定義一個類時,沒有調用extends,則它的父類是:java.lang.Object。
方法的重寫override?
子類通過重寫父類的方法,可以用自身的行為替換父類的行為。方法的重寫是實現多態的必要條件。
方法的重寫需要符合下面的三個要點:
? ? ??1. “==”:?方法名、形參列表相同。
? ? ??2. “≤”:返回值類型和聲明異常類型,子類小于等于父類。
? ? ??3. “≥”:?訪問權限,子類大于等于父類
方法重寫
package cn.sxt; class Vehicle{ //交通工具類public void run() {System.out.println("跑.....");}public void stop() {System.out.println("停止不動");} } class Horse extends Vehicle{ //馬也是交通工具public void run() { //重寫父類方法System.out.println("四蹄翻飛,嘚嘚嘚嘚...");} } class Plane extends Vehicle{public void run() { //重寫父類方法System.out.println("天上飛!");}public void stop() {System.out.println("空中不能停,墜毀了!");} }public class TestOverride {public static void main(String [] args) {Vehicle v1=new Vehicle();Vehicle v2=new Horse();Vehicle v3=new Plane();v1.run();v2.run();v3.run();v2.stop();v3.stop();} }?Object類基本特性
Object類是所有Java類的根基類,也就意味著所有的Java對象都擁有Object類的屬性和方法。如果在類的聲明中未使用extends關鍵字指明其父類,則默認繼承Object類
toString方法
Object類中定義有public String toString()方法,其返回值是 String 類型
在打印輸出或者用字符串連接對象時,會自動調用該對象的toString()方法。
package cn.sxt;public class TestObject {public static void main(String[] args) {TestObject to=new TestObject();System.out.println(to);System.out.println(to.toString()); //to 與 to.toString() 等同}public String toString() {return "測試Object對象";} } package cn.sxt;public class TestObject {public static void main(String[] args) {TestObject to=new TestObject();System.out.println(to);System.out.println(to.toString()); //to 與 to.toString() 等同}/*public String toString() {return "測試Object對象";}*/}toString()方法測試和重寫toString()方法
package cn.dym.cl;class Person{String name;int age;@Overridepublic String toString() {return name+",年齡:"+age;} } public class Test {public static void main(String [] args) {Person p=new Person();p.age=21;p.name="止小兮";System.out.println("info:"+p);Test t=new Test();System.out.println(t);} }?
總結
以上是生活随笔為你收集整理的java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java的知识点10——static关键
- 下一篇: java的知识点12——==和equal