1. 程式人生 > >Java面向物件----繼承概念,super關鍵字

Java面向物件----繼承概念,super關鍵字

繼承概念:

  繼承需要符合的關係  is-a  , 父類通用更抽象,子類更特殊更具體

類之間的關係

  • 繼承體現
  • 組合體現
  • 實現介面體現

繼承的意義

   程式碼重用

  體現不同抽象層次

extends關鍵字

Super關鍵字

  代表的是父類的物件的引用

package com.tanlei.newer;

public class TeachersDemo {
   public static void main(String[] args) {
	B b=new B();
	b.showB();
}
}

class  A{
	public A() {
		System.out.println("a的構造方法");
	}
	public  void  showA() {
		System.out.println("A");
	}
}

class  B extends A{
	
	public B() {
		super();//呼叫父類無參的構造方法,可以省掉
System.out.println("b的構造方法"); } public void showB() { System.out.println("B");
showA();//super.showA();
} }

方法重寫(override)  

  相同名稱,引數列表相同,返回值相同

final關鍵字

變數用了就是常量(常量一般和static共用)

final修飾了類的話不能被繼承

final修飾了方法不能被重寫

package com.tanlei.newer;

public class FinalDemo {
   public static void main(String[] args) {
	AA aa=new AA();
	aa.shownum1();
	aa.shownum2();
	BB bb=new BB();
	bb.shownum2();
}
}

//常量類是不能被繼承的,final用在引用變數上,代表此引用變數,只能引用一開始所引用的物件,中途不能改變指向
/*final*/ class AA{ public final int number1=1; public final int number2=2; public void shownum1() { //number1++;//常量是不能被修改的 System.out.println(number1); } //子類不能對父類中的常量方法重寫 public /*final*/ void shownum2() { System.out.println(number2); } } class BB extends AA{ public void shownum2() { System.out.println(number2); } }