175-177 抽象类

6 篇文章 0 订阅

175 抽象类

抽象方法,只是声明方法,没有方法体(连花括号也不写),到了子类里再写方法体

抽象类,里面可写抽象/非抽象方法

抽象方法,的类必须是抽象类

> 抽象方法很有要求

project/myAbstract,package/itheima01

176 抽象类的特点

特点01 用abstract修饰抽象类、抽象方法

特点02 抽象类随意,抽象方法只能写在抽象类里

特点03 抽象类的实例化要通过子类对象实现,这叫抽象类多态

特点04 抽象类的子类,必须重写抽象方法or子类也是抽象类

抽象类如何创建对象?——要通过子类多态去创建,也就是必须先1.写继承抽象类的子类,然后2.创建子类的对象才行

抽象类的子类,必须重写抽象方法or子类也是抽象类,否则报错

project/myAbstract,package/itheima02

--------------------------------------------------------------

package itheima02E176;

//

public abstract class Animal {

    //

    public abstract void eat();

    public void sleep(){

        System.out.println("176/睡觉");

    }

}

--------------------------------------------------------------

package itheima02E176;

public class Cat extends Animal{

    @Override

    public void eat() {

        System.out.println("176/猫吃鱼");

    }

}

--------------------------------------------------------------

package itheima02E176;

public abstract class Dog extends Animal{

}

--------------------------------------------------------------

package itheima02E176;

public class AnimalDemo {

    public static void main(String[] args) {

        //Animal a = new Animal();

        Animal a = new Cat();

        a.eat();

        a.sleep();

    }

}

177 抽象类的成员特点

成员变量,可变量可常量

成员方法,可抽象可非抽象,可构造方法但不可实例化(用于子类访问父类的初始化)

--------------------------------------------------------------

package itheima03E177;

public abstract class Animal {

    private int age=20;

    private final String city="177/北京";

    //抽象类里可以写构造方法

    public Animal(){}

    public Animal(int age) {

        this.age = age;

    }

    public void show(){

        System.out.println(age);

        age=40;

        System.out.println(city);

//        city="上海";

    }

    public abstract void eat();

}

--------------------------------------------------------------

package itheima03E177;

public class Cat extends Animal{

    @Override

    public void eat() {

        System.out.println("177/猫吃鱼");

    }

}

--------------------------------------------------------------

package itheima03E177;

public class AnimalDemo {

    public static void main(String[] args) {

        Animal a = new Cat();

        a.eat();

        a.show();

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值