抽象类的匿名子类

简介: 抽象类的匿名子类

抽象类的匿名子类

在B站学习java写的代码

代码如下

PersonTest类

package com.day0130_2;
/*
 * 抽象类的匿名子类
 * 
 */
public class PersonTest {
  public static void main(String[] args) {
    method(new Student());//匿名对象
    Worker worker =new Worker();
    method1(worker);//非匿名的类 非匿名的对象
    method1(new Worker());//非匿名的类 匿名的对象
    System.out.println("*****************");
    //创建了一匿名子类的对象:p
    Person p=new Person() /*多态*/{
      @Override
      public void eat() {
        System.out.println("吃东西");
      }
      @Override
      public void breath() {
        System.out.println("好好呼吸");
      }
    };
    method1(p);
    /*
    吃东西
    好好呼吸
    */
    System.out.println("*****************");
    //创建匿名子类的匿名对象
    method1(new Person () {
      @Override
      public void eat() {
        System.out.println("吃好吃的东西");
      }
      @Override
      public void breath() {
        System.out.println("好好呼吸新鲜空气");
      }
    });
  }
  public static void method1(Person p) {//多态
    p.eat();
    p.breath();
  }
  public static void method(Student s) {
  }
}
abstract class Creature{
  public abstract void breath();
}
abstract class Person extends Creature{
  String name;
  int age;
  public Person() {
  }
  public Person(String name,int age) {
    this.name=name;
    this.age=age;
  }
  //抽象方法
  public abstract void eat();
  public void walk() {
    System.out.println("人走路");
  }
}
class Worker extends Person{
  @Override
  public void eat() {
  }
  @Override
  public void breath() {
  }
}
相关文章
|
6月前
10 # 类:继承和成员修饰符
10 # 类:继承和成员修饰符
44 0
|
4月前
|
Java
子类的父类和接口具有共同的方法
子类的父类和接口具有共同的方法
32 7
|
5月前
|
编译器
继承——抽象基类与访问权限
继承——抽象基类与访问权限
|
5月前
|
数据安全/隐私保护
继承——基类与派生类
继承——基类与派生类
|
Java 程序员 C#
C++类成员的访问权限以及类的封装
C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。 Java、C# 程序员注意,C++ 中的 public、private、protected 只能修饰类的成员,不能修饰类,C++中的类没有共有私有之分。 在类的内部(定义类的代码内部),无论成员被声明为 public、protected 还是 private,都是可以互相访问的,没有访问权限的限制。 在类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问 p
|
编译器 数据安全/隐私保护 C++
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
157 0
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
本章我们继续讲解面向对象三大特性,上一章我们讲解了继承,本章我们讲解多态。从多态的概念一步步讲解,介绍构成多态的必要条件和两个例外。还会顺带讲解一下 C++11 更新的两个和多态有关系的关键字 final 和 override。上一章我们讲解了虚函数,本章会先补充纯虚函数的概念,然后再引入抽象类的概念。本章我们只学习C++多态的基础知识,至于多态的原理(VTBL、决议等)的难度相对较大,我们单独放到下一章去做专门讲解。
275 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
535 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
|
Java Scala 开发者
匿名子类|学习笔记
快速学习匿名子类。
子类到底能不能继承父类的私有属性?
继承就像是我们现实生活中的父子关系,儿子可以遗传父亲的一些特性,在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体;子类通过继承父类的属性的行为,我们称之为继承。Java只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类定义相同的功能,当功能内容不同的时候,子类对象不确定要运行哪一个,在Java中用另一种形式体现出来,就是接口的多实现。