JavaJoop04 抽象类和接口

抽象类

 

当一个类被abstract关键字修饰时,该类被称为抽象类

抽象类与普通类的最大区别就是:

普通类可以被实例化,而抽象类不能被实例化

抽象方法与普通方法的最大区别就是:

普通方法有方法体,抽象方法没有方法体


抽象

父类

 public abstract class Pet {
     String Name;
     int love;
     int health;
 ​
     public abstract void eat();
 ​
 }

子类

 public class Dog extends Pet{
 ​
     String brend;
 ​
     public String getBrend() {
         return brend;
     }
 ​
 ​
     public void print(){
         System.out.println("一只小修狗");
     }
      @Override
     public void eat() {
         System.out.println("修狗吃狗粮");
     }
 }

Mian方法

 public static void main(String[] args) {
     Dog dog = new Dog();
     dog.print();
     dog.eat();
 }


抽象方法所在类必须是抽象类,但抽象类中也可以包含普通方法,还可以包含普通类包含的一切成员

一个方法被定义为抽象方法,意味着该方法不会有具体的实现,而在抽象类的子类中通过方法重写实现

接口(interface)

接口是一个不能实例化的类型

接口是一种能力

接口是一种约定

接口比抽象类更好的特性:

1.可以实现多个

2.设计和实现完全分离

3.更自然的使用多态

4.更容易搭建程序框架

5.更容易更换实现

接口之间可以通过extends关键字实现继承关系,一个接口可以继承多个接口,但接口不能继承类

一个普通类只能继承一个父类,但能同时实现多个接口,也可以同时继承一个父类并实现多个接口

 public class AptitudeHandset extends HandSet implements Network,PlayWiring,TheakePictures{
    
     }
面向对象设计原则:

1.摘取代码中变化的部分,形成接口

2.多用组合,少用继承

3.面向接口编程,不依赖于具体实现

4.针对扩展开放,针对改变关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值