【Java 基础学习-面向对象-07接口+类型转换】

接口概念

  • 接口是一种特殊的类
  • 接口格式:
public interface 接口名称{
//输入接口内容
}
  • 接口内容
    • 接口内容中的属性是默认的静态的常量
    • 接口内容中的方法只有方法名,没有方法体,是一种抽象方法
      • 常量:final 修饰属性,修饰属性的同时,属性要赋值。需对象调用
      • 静态:static 修饰属性/方法,该属性/方法属于类。需类名/接口名打点调用
      • 抽象:abstract 修饰方法成为抽象方法,无方法体
    • 比如:
      • 接口中的属性默认被static final修饰
      • 接口中的方法默认被public static abstract修饰
public interface person {
    static final  int age=22;
    static final  String name="qwb"
    static final  int height=180;
    //属性符合静态,常量(属性赋值)两个要求时正常显示
}
public interface USB {
public static abstract void saveDate();
}
  • 类与接口的区别:
    • 类:不完全抽象
      • 只抽象属性(属性赋值可以不同),不抽象方法(同一类方法是确定的)
    • 接口:抽象的
      • 属性已经初始化赋值,方法名是抽象的
  • 接口是子类的父类
    • 定义一个接口时,用方法名。以方法来分类
    • 子类用来实现(implements)接口,也叫实现类

类型转换

  • 不同的类具有继承关系,某一对象在不同类之间的转换叫做类型转换

1.人类具有吃的方法

public class Person{
public void eat(){
}
}

2.学生类继承人类,具有新的学习方法

class Student extends Person{
public void study(){
System.out.println("学生学习")
}
}

3.大学生类继承学生类,具有新的学习六级的方法

class UNStudent extends Student{
public void study(){
 System.out.println ("大学生学习");
}
public void studyCET_6(){
 System.out.println("大学生学习六级")
}

4.子类转型为父类之后

class PersonManage{
public static void main(String[] args){
UNStudent us=new UNStudent();
us.study();
//对象us调用学习方法,输出为大学生学习
//若子类未重写父类的学习方法,则子类调用父类学习方法
us.studyCET_6();
//对象us调用学习六级方法,输出为大学生学习六级
Student s1=us;
//大学生对象us转型为学生类对象s1
//子类转型为父类
s1.study();
//输出为大学生学习
//s1为父类,us为子类,子类转换为父类后仍先调用子类重写的同样的方法
//s1.studyCET_6();
//父类s1不可调用子类新定义的方法
//同理
//Person.p1=us/s1;
//p1.study();也不可以实现
}
}
}

方法重写

  • 和继承一样,一个类实现一个或多个接口的时候,必须重写接口中的抽象方法
  • 子类重写父类的方法之后,子类调用方法时优先调用子类重写的方法
  • 子类转型为父类后,父类调用方法时仍为子类重写的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值