package java151219;
class AbstractDemo {
public static void main(String[] args) {
new BaseStudent().study();
}
}
// 当多个类出现相同功能 ,但是功能主题不同时,又该怎么做呢?
// 向上抽取,只抽取功能定义,而不抽取功能主体.
// 抽象类的特点:1,抽象方法一定存在抽象方法,2,抽象方法和抽象类必须被abstract修饰,3,抽象类不可以创建对象,4抽象类的方法要被子类使用时,抽象类的方法必须全部被子类复写
//抽象类和一般类没有太大的区别,描述事物是没有区别的,只不过该事物中出现了一部分不确定的事物,需要明确出现,但是无法定义主 体时,可以考虑在父类 中使用抽象方法,在子类中去具体实现同一功能但是有区别的事情.
abstract class Student2 {
// void study() {
// // System.out.println("Study!");
// }
abstract void study();
void sleep(){
System.out.println("躺着睡觉!");
}
}
class BaseStudent extends Student2 {
void study() {
System.out.println("base study!");
}
}
class AdvStudent extends Student2 {
void study() {
System.out.println("adv study!");
}
}
class ChongCiStudent extends Student2 {
@Override
void study() {
System.out.println("chongci study!");
}
}
class AbstractDemo {
public static void main(String[] args) {
new BaseStudent().study();
}
}
// 当多个类出现相同功能 ,但是功能主题不同时,又该怎么做呢?
// 向上抽取,只抽取功能定义,而不抽取功能主体.
// 抽象类的特点:1,抽象方法一定存在抽象方法,2,抽象方法和抽象类必须被abstract修饰,3,抽象类不可以创建对象,4抽象类的方法要被子类使用时,抽象类的方法必须全部被子类复写
//抽象类和一般类没有太大的区别,描述事物是没有区别的,只不过该事物中出现了一部分不确定的事物,需要明确出现,但是无法定义主 体时,可以考虑在父类 中使用抽象方法,在子类中去具体实现同一功能但是有区别的事情.
abstract class Student2 {
// void study() {
// // System.out.println("Study!");
// }
abstract void study();
void sleep(){
System.out.println("躺着睡觉!");
}
}
class BaseStudent extends Student2 {
void study() {
System.out.println("base study!");
}
}
class AdvStudent extends Student2 {
void study() {
System.out.println("adv study!");
}
}
class ChongCiStudent extends Student2 {
@Override
void study() {
System.out.println("chongci study!");
}
}