1、Java的继承机制( 在Java语言中,一个类虽然不能有多个直接父类,但是它可以有多个间接父类。)
2、 抽象方法(没有方法体{},必须使用abstract关键字来修饰。不能直接调用,只能被重写才能使用。)
注意:
1.抽象类不能直接被使用,不能直接实例化。2.必须用一个子类来继承抽象的父类。
3.子类必须覆盖重写,抽象父类中的所有抽象方法。
4.一个抽象类不一定含有抽象方法,但是一个有抽象方法的类一定是抽象类。
第一组代码:
1、
package A;
public class A1 {
int num=10;
public A1() {
}
public A1(int num) {
}
}
2、
package A;
public class A2 extends A1 {
int num=20;
public A2() {
super();
System.out.println("我是子类的无参构造方法");
}
public A2(int n) {
this.num=n;
System.out.println("我是子类的有参构造方法"+n);
}
public A2(int n,String name) {
this(1000);
System.out.println("我是子类的有参构造方法"+n);
}
public void showNum() {
int num=30;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
public void methodA() {
System.out.println("AAA");
}
public void methodB() {
System.out.println("BBB");
}
}
3、
package A;
public class A3 {
public static void main(String[] agrs) {
A2 a2=new A2();
}
}
第二组代码:
1、
package B;
public abstract class B1 {
public B1() {
System.out.println("抽象父类中的构造方法");
}
public abstract void eat();
public abstract void foot();
public void normalMethed() {
}
}
2、
package B;
public class B2 extends B1 {
public B2() {
super();
System.out.println("子类中的构造方法");
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
public void foot() {
}
}
3、
package B;
public class B3 {
public static void main(String[] agrs) {
B2 b2=new B2();
b2.eat();
}
}
4、
package B;
public class B4 {
public void sleep() {
}
}
第三组代码:
1、
package C;
public abstract class C1 {
public C1() {
System.out.println("抽象父类中的构造方法");
}
public abstract void eat();
public abstract void sleep();
}
2、
package C;
public abstract class C2 extends C1{
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
3、
package C;
public abstract class C3 extends C2 {
@Override
public void sleep() {
System.out.println("二哈 拆家");
}
}
4、
package C;
public abstract class C4 extends C2{
@Override
public void sleep() {
System.out.println("睡觉");
}
}
5、
package C;
public class C5 {
public static void main(String[] agrs) {
C3 c3=new C3();
c3.eat();
c3.sleep();
System.out.println("=============");
C4 c4=new C4();
c4.eat();
c4.sleep();
}
}