Java面向对象之类、接口、多态

类

class Person {
// 实例属性
int age;
String name;
// 类属性
static int v = 1; // 构造器
public Person() {}
// 构造器重载
public Person(int age, String name) {
this.age = age;
this.name = name;
}
// 实例方法
public void tell_age() {
System.out.println(this.age);
}
// 方法重载
public void tell_age(String s) {
System.out.println(this.age + " " + s);
} // 类方法
public static void print_v() {
System.out.println(v);
}
} // 类的继承
// 继承可以继承除了private的一切方法和属性
// Object是Java的顶级父类
class Man extends Person {
// 方法覆盖
@Override
public void tell_age() {
super.tell_age(); // 执行父类的此方法
System.out.print("Man eat...");
}
}

接口

指interface,类似于swift的protocal

interface中的变量都是默认public static final修饰的

interface中的方法都是默认public abstract修饰的

注意点:

  这些修饰词可以省略一个,也可以省略多个(甚至都省略),但是不能用其他修饰词修饰.

  不写public 不是默认的 default;写default会报错

变量:

   public static final int MAX_LENGTH = 1000;

   final int MAX_LENGTH = 1000;

   static int MAX_LENGTH = 1000;

   public int MAX_LENGTH = 1000;

   int MAX_LENGTH = 1000;

方法:

   public abstract void method();

   public void method();

   abstract void method();

   void method();

interface Animal {
public void eat();
public void sleep();
public void play();
} interface Fish extends Animal {
public void swim();
} class AFish implements Fish {
@Override
public void swim() { }
@Override
public void sleep() { }
@Override
public void play() { }
@Override
public void eat() { }
}
// 当然,一个类也可以实现多个interface 彼此之间用逗号隔开:
// class ClassA implements interfaceA, interfaceB, interfaceC {
//
// }

多态

public class Demo {
public static void main(String[] args) {
Cat c = new Cat();
// Java 多态 一个方法有多种状态
Animal cat = new Cat();
Animal dog = new Dog();
cat.eat(); // cat eat ...
cat.sleep(); // cat sleep...
dog.eat(); // dog eat ...
dog.sleep(); // dog sleep...
Person p = new Person();
p.care(cat);
p.care(dog);
}
} interface Animal {
public void eat();
public void sleep();
} class Cat implements Animal {
@Override
public void eat() {
System.out.println("cat eat...");
}
@Override
public void sleep() {
System.out.println("cat sleep...");
}
} class Dog implements Animal {
@Override
public void eat() {
System.out.println("dog eat...");
}
@Override
public void sleep() {
System.out.println("dog sleep...");
}
} class Person {
public void care(Animal a) {
a.sleep();
a.eat();
}
}

多态使程序更加具有扩展性:向上类型转化、方法的动态绑定

Java面向对象之类、接口、多态的更多相关文章

  1. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  2. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  3. Java 面向对象之接口、多态

    01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...

  4. Java面向对象(接口、多态)

    面向对象 今日内容介绍 u 接口 u 多态 第1章 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的 ...

  5. JAVA 面向对象中的多态

    多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...

  6. JavaSE入门学习20:Java面向对象之接口(interface)(一)

    一Java接口 接口(英文:interface)是抽象方法和常量值的集合,在Java编程语言中是一个抽象类型,接口通常以interface来声 明.类是一种详细实现体.而接口定义了某一批类所须要遵守的 ...

  7. Java面向对象(二) 接口、多态和泛型

    一.接口 二.多态 多态是同一个行为具有多个不同表现形式或形态的能力. 2.1 类型转换 转换方式 隐式 向上转型 对于基本数据类型,存储容量低的可自动向存储容量高的类型转换 对于引用变量,子类可被转 ...

  8. Java面向对象㈡ -- 继承与多态

    Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...

  9. java面向对象--继承与多态

    可以为一个变异单元中的每个类创建一个main方法,只有命令行所调用的那个类的main方法才会被调用,这样方便进行单元测试.继承时,一般将所有的数据成员都指定为private,将所有的方法指定为publ ...

  10. Java面向对象程序设计--接口和内部类

    1.接口的定义: In the Java programming language, an interface is not a class but          staff[0] =       ...

随机推荐

  1. 模块学习-json pickle

    json json序列化 import json def sayhi(name): print("hello",name) info = { 'name':'mogu', 'age ...

  2. 连接数据库的url

    mysql: jdbc:mysql://localhost:3306:test这句里面分如下解析:jdbc:mysql:// 是指JDBC连接方式:localhost: 是指你的本机地址:3306 S ...

  3. 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用隐藏层

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_NODE = 784 ...

  4. 思科室外AP无法注册到WLC

    思科的一些新的室外AP,在购买回来时,有时候会出现无法加入WLC的情况,现象基本是无法加入,或感觉加入了,立马又掉了. 例如: AIR-AP1562E-H-K9 AIR-AP1572EAC-H-K9 ...

  5. 比较好的IT教程网

    MDN最完整的Web标准,Webapi                https://developer.mozilla.org/zh-CN/docs/Web 主要几个比较常用教程网都可以 gitbo ...

  6. Springboot - 更优雅的方式请求发 HTTP 请求

    参考:https://www.cnblogs.com/javazhiyin/p/9851775.html RestTemplate 是 Spring 提供的用于访问Rest 服务的客户端RestTem ...

  7. 【转】使用普通用户执行docker

    原文:https://www.cnblogs.com/klvchen/p/9098745.html CentOS 版本 7.4,Docker 版本 docker-1.13 及以下 ll /var/ru ...

  8. sparksql报错

    执行时报错: org.apache.spark.sql.AnalysisException: Unable to generate an encoder for inner class `cn.itc ...

  9. P4710 平抛运动

    题目:https://www.luogu.org/problemnew/show/P4710 $$ v_x = v_{x_0} = v \ sin \ \theta, \  v_y = v_{y_0} ...

  10. jmeter download historyList

    https://archive.apache.org/dist/jmeter/binaries/ 反馈,问题和评论应发送到Apache JMeter Users 邮件列表. 有关更多信息, 请访问Ap ...