java面向對象—抽象類與接口

一、final關鍵字在java中被稱爲完結器,表示最終的意思java

二、final能聲明類,方法,屬性:this

            使用final聲明的類不能被繼承
code

            使用final聲明的方法不能被重寫
繼承

            使用final聲明的變量變成常量,常量是不能夠被修改的(常量名所有大寫)
接口

抽象類
get

一、抽象類概念:class

            包含一個抽象方法的類就是抽象類
變量

二、抽象方法:方法

            聲明而未被實現的方法,抽象方法必須使用abstract關鍵字聲明
im

三、抽象類被子類繼承,子類(若是不是抽象類)必須重寫抽象類中的全部抽象方法

四、定義格式:

            abstract class className{

                        屬性

                        方法

                        抽象方法

                }

五、抽象類不能直接實例化,要經過其子類進行實例化

package com.jk.classdemo;

abstract class Student{
	private String name;
	private int age;
	public void tell(){
		
	}
	public abstract void say();
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}
	
}
class AbsDemo extends Student{
	public void say(){
		System.out.println("name:"+getName()+"  "+"age:"+getAge());
	}
}
public class AbstDemo01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AbsDemo a=new AbsDemo();
		
		a.setName("ddd");
		a.setAge(20);
		a.say();
	}

}

接口

一、接口能夠理解爲一種特殊的類,裏面所有是由全局常量(常量必須大寫)和公共的抽象方法所組成

二、接口的格式:

                interface interfaceName{

                        全局常量

                        抽象方法

                    }

三、接口的實現也必須經過子類,使用關鍵字implements,並且接口是能夠多實現的

package com.jk.classdemo;

interface inter1{
	public static final int AGE=30;
	abstract public void say();
}
interface inter2{
	public static final String NAME="zhangsan";
	abstract public void tell();
}
class Imp implements inter1,inter2{
	public void say(){
		System.out.println(AGE);
	}
	public void tell(){
		System.out.println("hello");
	}
}
public class InterDemo01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Imp im=new Imp();
		im.say();
		System.out.println(inter1.AGE);
		im.tell();
		System.out.println(inter2.NAME);
	}

}

四、一個子類能夠同時繼承抽象類和實現接口

package com.jk.classdemo;

interface inter1{
	public static final int AGE=30;
	abstract public void say();
}
interface inter2{
	public static final String NAME="zhangsan";
	abstract public void tell();
}
abstract class Abs1{
	public abstract void print();
} 
class Imp extends Abs1 implements inter1,inter2{
	public void say(){
		System.out.println(AGE);
	}
	public void tell(){
		System.out.println("hello");
	}
	public void print(){
		System.out.println("welcome");
	}
}
public class InterDemo01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Imp im=new Imp();
		im.say();
		System.out.println(inter1.AGE);
		im.tell();
		System.out.println(inter2.NAME);
		im.print();
	}

}

五、一個接口不能繼承一個抽象類,可是卻能夠經過extends關鍵字同時繼承多個接口,實現接口的多繼承

interface inter1{
	public static final int AGE=30;
	abstract public void say();
}
interface inter2{
	public static final String NAME="zhangsan";
	abstract public void tell();
}
interface inter3 extends inter1,inter2{
	
}
abstract class Abs1{
	public abstract void print();
}
相關文章
相關標籤/搜索