抽象类的匿名子类

简介: 抽象类的匿名子类

抽象类的匿名子类

在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() {
  }
}
相关文章
|
Java Scala 开发者
匿名子类|学习笔记
快速学习匿名子类。
|
编译器 数据安全/隐私保护 C++
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
176 0
【六、继承】多继承、继承中的构造函数和析构函数、类成员访问控制
|
8月前
|
编译器
继承——抽象基类与访问权限
继承——抽象基类与访问权限
子类到底能不能继承父类的私有属性?
继承就像是我们现实生活中的父子关系,儿子可以遗传父亲的一些特性,在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体;子类通过继承父类的属性的行为,我们称之为继承。Java只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类定义相同的功能,当功能内容不同的时候,子类对象不确定要运行哪一个,在Java中用另一种形式体现出来,就是接口的多实现。
|
开发工具 Windows 索引
子类化
子类化   如果你曾经在 Windows 环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样。如果你需要一个具有过滤特殊字符功能的 Edit 控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费时又很困难的任务,而子类化就可以用来做这种事情。
868 0
|
7月前
|
Java
子类的父类和接口具有共同的方法
子类的父类和接口具有共同的方法
41 7
抽象类和普通类的区别
抽象类和普通类的区别
173 0
|
Java 编译器 数据安全/隐私保护
再谈包访问权限 子类为何不能使用父类protected方法
可见范围   权限的含义应该理解为控制范围,要把它理解成一个限制范围的空间,更为准确的说叫做可见范围 访问控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、和private   public 所有地方都可以访问,没有任何疑问 pri...
1541 0

热门文章

最新文章