您好,登錄后才能下訂單哦!
什么是抽象類?
使用abstract修飾的類稱為抽象類
public abstract class Person {
}
public class TestPerson {
public static void main(String[] args) {
Person p=new Person() ;|
}
}
public abstract class Person {
public Person(){
System.out.println("Person類中的無參構造方法");
}
}
抽象類中構造方法的作用,是提供給子類調用
package com.bjsxt.abstractpro;
public class Student extends Person {
public Student(){
super();//調用直接父類的無參構造方法
System.out.println("Student類的無參構造方法");
}
}
public class TestPerson {
public static void main(String[] args) {
//Person p=new Person();
Student stu=new Student();
}
}
運行效果圖
成員變量,成員方法,靜態方法,構造方法,final修飾的方法,抽象方法
public abstract class Person {
//(1)成員變量/實例變量/屬性
private String name;//姓名
//(2)成員方法/實例方法
public void info(){
System.out.println("大家好,我叫"+name);
}
//(3)靜態方法
public static void show(){
}
//(4)構造方法
public Person(){
System.out.println("Person類中的無參構造方法");
}
//(5)final修飾的方法,只能被子類調用,不允許被子類重寫
public final void fun(){
}
}
什么是抽象方法?
使用abstract修飾的方法稱為抽象方法
public abstract class Person {
public abstract void print();
}
1)抽象方法不允許有方法體,只能以分號“;”結尾
2)抽象方法只能聲明在抽象類中 (含有抽象方法的類必須是抽象類)
3)抽象類中可以包含0個或多個抽象方法
4)抽象方法必須被子類實現
5)如果子類不能實現父類中的抽象方法,那么子類也必須是抽象類
總結:abstract可以修飾類和方法
通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。(程序的可擴展和可維護性)
什么情況下使用抽象類?父類的名稱比較抽象,創建對象無意義。
Animail動物類 –》abstract, abstract shout()
每一種運物 ,分別實現發聲的方法
package com.bjsxt.abstractdemo;
public abstract class Animal {//動物
public abstract void shout();//抽象方法
}
class Dog extends Animal{
@Override
public void shout() {
System.out.println("小狗,汪汪叫..........");
}
}
class Cat extends Animal{
@Override
public void shout() {
System.out.println("小貓,喵喵叫................");
}
}
package com.bjsxt.abstractdemo;
public class TestAnimal {
public static void main(String[] args) {
//父類引用指向子類對象
Animal dog=new Dog();
Animal cat=new Cat();
//調用相同的方法
dog.shout();
cat.shout();
//運行的結果,各不相同(每個子類實現之后的結果)
}
}
運行結果;
都看到這里了,是不是想學習呢?
點擊這里,進入學習吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。